LEETCODE 7 整数反转

天涯浪子 提交于 2019-12-02 12:55:38

 

class Solution {
public:
    int reverse(int x) {
        long long ret=0;
        long long cmp1=((long long)1<<31)-1;
        long long cmp2=-cmp1-1;
        while(x!=0)
        {
            ret=ret*10+x%10;
            if((ret>cmp1)||(ret<cmp2))
                return 0;
            x/=10;
        }
        return ret;
    }
};

 

注意不能直接写1<<32,因为默认1是int的,然后-优先级高于<<,用括号吧

用long long cmp1=((long long)1<<31)-1;

这题感觉描述的有问题,我还以为是输入范围也在-2^32 - 2^32-1,结果错了一次....

#include<limits.h>

#define INT_MAX 2147483647
#define INT_MIN (-INT_MAX - 1)

 

 

32位情况,C中int类型是32位的,范围是-2147483648到2147483647 。 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!