正负号没有影响,反正都是while(x!=0). 依次摘下末位然后乘10,再加末位数,如此循环至x=0;
值得注意的是定义返回值时不能用int,因为可能会越界,比如一个前小后大的数,反转之后就超出了最大值限制,就不是原值了
int reverse(int x )
{
int min = 0x80000000, max = 0x7fffffff;
double res = 0; //此处不能写int
while(x != 0){
res = res * 10 + x % 10;
x = x / 10;
}
if(res >= min && res <= max)
return res;
else
return 0;
}

京公网安备 11010502036488号