原题链接
class Solution {
public:
int reverse(int x) {
int r = 0;
while(x){
if(r > 0 && r > (INT_MAX - x % 10) / 10) return 0;
if(r < 0 && r < (INT_MIN - x % 10) / 10) return 0;
r = r * 10 + x % 10;
x /= 10;
}
return r;
}
};
Note:
C++里面负数取余是负数
数学里-4取余数是6?
关于可能爆 int 这件事
把可能爆的式子来回移一移项就可以写成个判断条件了
10r + x % 10 > INT_MAX (x) 10r + x % 10 < INT_MIN (x) 移项以后就写成代码里面的判断条件了



