c++,简洁,没有使用long long

反转数字

http://www.nowcoder.com/questionTerminal/1a3de8b83d12437aa05694b90e02f47a

class Solution {
public:
    /**
     * 
     * @param x int整型 
     * @return int整型
     */
    int reverse(int x) {
        // write code here
        int res = 0;
        while (x != 0) {
            int t = x % 10;
            x /= 10;
            if (res > INT_MAX / 10 ) return 0;
            if (res < INT_MIN / 10 ) return 0;
            res = res * 10 + t;
        }
        return res;
    }
};
全部评论
因为int占4字节32位,根据二进制编码的规则,INT_MAX = 2^31-1,INT_MIN= -2^31.C/C++中,所有超过该限值的数,都会出现溢出,出现warning,但是并不会出现error。如果想表示的整数超过了该限值,可以使用长整型long long 占8字节64位。
1 回复 分享
发布于 2021-03-07 23:19

相关推荐

不愿透露姓名的神秘牛友
05-01 13:13
ecece:这么明目张胆虚报就业率啊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务