用c++使输入的数字各个位上数字反转得到一个新数

为了使得输入的数字,各个位上的数字反转,我们首先要清楚,如何去取,各个位上的数字,但是因为不知道此时输入的数字是几位数,那么我们就依次去取得他个位上的数字,然后将原来的数字除以10,接着继续取个位上的数字,那么就能把数字全部取出,具体代码如下:

cpp 复制代码
#include <iostream>
#include <math.h>
using namespace std;
int main(){
    int n , result = 0 , a = 0;
    bool isNegative = false;   //判断是否为负数,默认为正数
    cin >> n;  //输入要反转的数
    while(n != 0){       //是0则直接输出0 不是0则一直除到为0 那么就把该数的所有位数取出
        if(n < 0){        
            n = abs(n);            //如果n小于0 则用abs公式取他的绝对值
            isNegative = true;
        }
        a = n%10;                    //取出此时个位上的数字
        n = n/10;                    //取掉上述a之后,n的值
        result = result*10 + a; //将取得的数填入,eg:123 取3 0*10 + 3 = 3 继续取 3*10 +2 =32
    }
    if(isNegative){
        result *= -1;        //如果是负数则整体乘以-1
    }
    cout << result << endl;
    return 0;
}
相关推荐
苏宸啊6 分钟前
rbtree封装map和set
c++
ok_hahaha13 分钟前
java从头开始-黑马点评-Redission
java·开发语言
无巧不成书021814 分钟前
Java面向对象零基础实战:从Employee类吃透自定义类核心,掌握封装精髓
java·开发语言·java入门·面向对象·自定义类·employee类·java核心技术
跃上青空28 分钟前
Java如何优雅的使用fastjson2进行枚举序列化/反序列化,欢迎探讨
java·开发语言
汉克老师29 分钟前
GESP2025年6月认证C++三级( 第一部分选择题(1-8))
c++·二进制·原码·补码·gesp三级·gesp3级·八进制、
不想写代码的星星29 分钟前
C++ 折叠表达式:“我写递归你写折叠,咱俩代码差十年”
c++
Leo6553544 分钟前
动态透视报表 + 查询接口 + Excel导出
开发语言·windows·python
BioRunYiXue1 小时前
Nature Methods:CellVoyager 自主 AI 智能体开启生物数据分析新时代
大数据·开发语言·前端·javascript·人工智能·数据挖掘·数据分析
CoovallyAIHub1 小时前
VisionClaw:智能眼镜 + Gemini + Agent,看一眼就能帮你搜、帮你发、帮你做
算法·架构·github
Titan20241 小时前
map和set的封装学习笔记
数据结构·c++