多重循环~数字反转

题目描述:

输入

输入共 1 行,一个整数N。

 

输出

输出共 1 行,一个整数,表示反转后的新数。

注:反转后首位不能为0
复制代码
 1 #include<stdio.h>
 2 int main(){
 3     int N=0;                //要反转的数字
 4     int tem=0;                //暂存取出来的末尾的数字
 5     int M=0;                //反转结果
 6     int p;                    //用来存符号
 7     scanf("%d",&N);
 8     if(N<0){
 9         N=-N;
10         p=-1;
11     }
12     else{
13         p=1;
14     }
15     while(N!=0){            
16         if(N/10>=1){
17             tem=N%10;        //每次取出的末尾的数字 
18             N/=10;            //取完后原数字去掉低位
19             //M=tem*10;
20             //printf("%d",M);
21             M=M*10+tem;
22         }
23         else{                //当数字被取到只剩一个位
24             M=M*10+N;        //?
25             break;    
26         }        
27     }
28     printf("%d",M*p);
29     
30 }
复制代码

solution:

 1 为避免负数计算过程中出现的:负负得正~将符号与数字分看,用p存储符号后将所有数都当作正数进入循环

  2 为避免反转后首位为0~不可以得到一位低位就输出一位

posted on   罗小罗佳油  阅读(50)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
点击右上角即可分享
微信分享提示