class Solution {
public:
int reverse(int x) {
bool flag=false;
long temp=x;
if(temp<0)
{
flag=true;temp=-temp;
}
long sum=0;
while(temp>0)
{
sum*=10;
sum+=(temp%10);
temp/=10;
if (sum > 0x7fffffff)
return 0;
}
return flag?-sum:sum;
}
};
一道字面意思很简单的题,但是有一个关键条件,即数值越界问题,可以在循环体内进行判断,不能超过2的32次方-1
可以用0x7fffffff十六进制表示,可以用INT_MAX 来表示