设为首页 加入收藏

TOP

[Leetcode]-Reverse Integer
2015-11-21 00:58:37 来源: 作者: 【 】 浏览:2
Tags:Leetcode -Reverse Integer

//如果有pow函数,Linux下编译一定要加-lm
//gcc ReverseInteger.c -o ReverseInteger -lm
关键:一定要注意操作过程中int类型超界
有可能输入数据没有超界,但是反向逆序后,甚至在逆序操作过程中都有可能超界!反正时刻检查超界与否

#include 
   
     #include 
    
      #include 
     
       #include 
      
        int reverse(int x) { int f = 0; int k = 0; int m = 0; int tem=0; int r = 0; int INT_MAX_DIV10 = INT_MAX / 10; if(x<-INT_MAX && x >INT_MAX) return 0; if(x < 0) { x = -x; f = 1; } while(x) { if(r > INT_MAX_DIV10) return 0; r = r*10; tem = x % 10; if(INT_MAX - tem < r) return 0; r = r + tem; x = x/10; } if(f) r = -r; return r; } int main() { int x = 1; int r = reverse(x); printf("reverse x %d = %d \n",x,r); x = 13579; r = reverse(x); printf("reverse x %d = %d \n",x,r); x = 0; r = reverse(x); printf("reverse x %d = %d \n",x,r); x = -13579; r = reverse(x); printf("reverse x %d = %d \n",x,r); x = -1; r = reverse(x); printf("reverse x %d = %d \n",x,r); x = 1534236469; //原数不超界,逆序超界 r = reverse(x); printf("reverse x %d = %d \n",x,r); } 
      
     
    
   
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Codeforces 555A Case of Matryos.. 下一篇leetcode 9 Palindrome Number 回..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: