本题限制为32位数,即
逆转有溢出可能,此外,还要考虑,输入的数为负数和0此类情况。
int reverse(int x) {
unsigned int n=0;
int flag=0,i=0;
int temp;
if(x<0){
flag=1;
x=-x;
}
if(x==0){
return 0;
}
while((x%10)==0){
x=x/10;
};
while(x!=0){
i++;
temp=n*10+(x%10);
if(temp/10!=n) //若不等,则表示溢出
return 0;
x=x/10;
n=temp;
}
if(flag==1)
return -n;
else
return n;
}