反转整数
一、问题描述
给定一个32位有符号整数,将整数中得到数字进行反转
示例:
输入:123
输出:321
输入:-123
输出:-321
输入:120
输出:21
二、算法思想
取一个数的个位数只需要这个数对10取余,可以通过不断的对10取余然后除10,依次取出个位、十位……的数。最后就能得到反转后的数。
如果计算机只能存储32位整数,那么反转后有溢出风险
三、代码
1 #include <cstdio> 2 const int INT_MIN=-214748364; 3 const int INT_MAX=214748364; 4 int main(){ 5 int x,res = 0; 6 scanf("%d",&x); 7 while(x){ 8 int y = x%10; 9 x = x/10; 10 if(res < INT_MIN || res > INT_MAX){ 11 return 0; 12 }else{ 13 res = res*10+y; 14 } 15 } 16 printf("%d",res); 17 return 0; 18 19 }