常量INT_MAX和INT_MIN分别表示最大、最小整数,定义在头文件limits.h中。
因为int占4字节32位,根据二进制编码的规则,INT_MAX = 2^31-1,INT_MIN= -2 ^31
class Solution {
public:
int reverse(int x) {
int rev = 0;
while (x != 0)
{
int pop = x % 10;
x /= 10;
if ((rev > INT_MAX/10) || (rev == INT_MAX/10 && pop > 7))
{
return 0;
}
else if ((rev < INT_MIN/10) || rev == INT_MIN/10 && pop < -8)
{
return 0;
}
rev = rev * 10 + pop;
}
return rev;
}
};