码迷,mamicode.com
首页 > 其他好文 > 详细

Reverse Integer问题

时间:2016-10-15 16:52:52      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

问题描述:

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321

这应该算是相当简单的问题了,用%和/来不断获取整数的最低位,用atoi的思想获得转换后的数。这题考察的应该是我们的细心程度。一个合格的Reverse Integer算法应该考虑到溢出的情况。

int reverse(int x) {
    int y=0;
    int max=~(unsigned int)0/2;
    int min=-max-1;
    while(x!=0){
        if(x<10&&x>-10){
            if(y>max/10||y==max/10&&x>max%10)
                return 0;
            if(y<min/10||y==min/10&&x<min%10)
                return 0;
        }
        y=y*10+x%10;
        x/=10;
    }
    return y;
}

这里我用了~(unsigned int)0/2来计算int的最大值,这样就保证在不同机器上都能正确地处理溢出了。

其他的似乎也没有什么好说的了。

Reverse Integer问题

标签:

原文地址:http://www.cnblogs.com/evilkant/p/5964386.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!