题目
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
注意
本题需要注意转换后的结果是否溢出。
借住了头文件limist.h中的定义:
#define INT_MAX 2147483647
#define INT_MIN (-INT_MAX - 1)
代码
class Solution{
public:
int reverse(int x){
if(x/10==0)
return x;
int res=0;//用来存放结果
while(x){
if(res>INT_MAX/10||res<INT_MIN/10)//判断结果是否溢出
return 0;
res*=10;
res=res+x%10;
x=x/10;
}
return res;
}
};