给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
判断好溢出时的边界条件:
class Solution {
public:
int reverse(int x) {
bool fuhao=x&0x80000000;
int temp;
int sum=0;
int MAX1=(pow(2,31)-1)/10;
int MAX2=-pow(2,31)/10;
//printf("MAX1=%d MAX2=%d\n",MAX1,MAX2);
//printf("fuhao=%d\n",fuhao);
if(x==0)
{
return 0;
}
while(x!=0)
{
temp=x%10;
x=x/10;
//printf("sum=%d\n",sum);
if(fuhao==0&&( (sum>=MAX1&&temp>7)||sum>MAX1) )
{
//printf("xxx\n");
return 0;
}
else if(fuhao!=0&&( (sum==MAX2&&temp<-8)||sum<MAX2 ) )
{
//printf("xxx\n");
return 0;
}
sum=sum*10+temp;
}
return sum;
}
};