回过头来看leetcode7,如何判定数据溢出。
可以采用提前判定法,也就是判定溢出之前一步的状态,如果满足就溢出。
class Solution {
public:
int reverse(int x) {
int ans = 0;
int a = INT_MAX % 10;
int b = INT_MIN % 10;
while(x){
int bit = x % 10;
x /= 10;
if((ans > INT_MAX / 10) || ((ans == INT_MAX / 10) && bit > a)) return 0;
if((ans < INT_MIN / 10) || ((ans == INT_MIN / 10) && bit < b)) return 0;
ans = ans * 10 + bit;
}
return ans;
}
};