代码如下:
int reverse(int x) {
int result = 0;
int err = 0;
int temp;
bool sign = true;
if(x<0){
sign = false;
x=-x;
}
while(x>0)
{
if(result>214748364){
result = 0;
return result;
}
temp = x%10;
result =10*result + temp;
x/=10;
}
if(sign)
return result;
else
return 0-result;
}
int reverse(int x) {
int result = 0;
int err = 0;
int temp;
bool sign = true;
if(x<0){
sign = false;
x=-x;
}
while(x>0)
{
if(result>214748364){
result = 0;
return result;
}
temp = x%10;
result =10*result + temp;
x/=10;
}
if(sign)
return result;
else
return 0-result;
}
需要注意的是32位整型的溢出问题
参考链接:http://www.cppblog.com/prayer/archive/2009/04/24/80939.html
32位整数中-2147483648到2147 483 647
而且要在循环的每一步检查是否在计算后会溢出;