分析:

 

 

//给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
//如果反转后整数超过 32 位的有符号整数的范围[−231, 231 − 1] ,就返回 0。
//假设环境不允许存储 64 位整数(有符号或无符号)。
class Solution {
public:
    int reverse(int x) {
        int rev = 0;
        while (x != 0) {
            int digit = x % 10;
            if (rev > INT_MAX / 10 || (rev == INT_MAX / 10 && digit > 7))
            {
                return 0;
            }
            if (rev < INT_MIN / 10 || (rev == INT_MIN / 10 && digit < -8))
            {
                return 0;
            }
            x /= 10;
            rev = rev * 10 + digit;
        }
        return rev;
    }
};
int main() {

    long x = 12345666666666666;
    Solution sol;
    int result = sol.reverse(x);
    cout << result << endl;
    system("pause");
    return 0;
}

 

posted on 2021-12-07 11:38  托马斯源  阅读(24)  评论(0编辑  收藏  举报