/*
负数取模:
1234 % 10 = 4
-1234 % 10 = -4
与数学上的模相反
方法一:使用long long 存储
方法二:使用int,直接在while中判断是否溢出,注意防止int越界
*/
1.
class Solution {
public:
int reverse(int x) {
long long r = 0;
while(x){
if()
r = r * 10 + x % 10;
x /= 10;
}
if(r > INT_MAX) return 0;
if(r < INT_MIN) return 0;
return r;
}
};
2.
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;
}
};