整数反转
需检查溢出,不然执行出错
检查整数是否在范围内
if(res>max/10 ||(res==max/10 && temp%10>7))
return 0;
if(res<min/10 || (res==min/10 && temp%10<-7))
return 0;
完整代码:
class Solution {
public:
int reverse(int x) {
int max = pow(2,31)-1;
int min = pow(-2,31);
if(x>=0 && x<10) return x;
int temp = x,res=0;
while(temp!=0){
if(res>max/10 ||(res==max/10 && temp%10>7))
return 0;
if(res<min/10 || (res==min/10 && temp%10<-7))
return 0;
res = res * 10 + temp%10;
temp = temp/10;
}
return res;
}
};