408每日算法——反转整数

反转整数

一、问题描述

  给定一个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 } 

 

上一篇:408算法练习——加油站(数组)


下一篇:408算法练习——分隔链表