题目:
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
解答:
//int越界,C++中的int类型存储长度为32bit.所以范围是“-2^32”到“2^32-1”;也就是“-2147483648”到“2147483647”,因此将int数值反转后可能会造成越界。
int reverse(int x) {
long sum=0;
long n1=0;
int flag=1;
if(x>=2147483647||x<=-2147483648) return 0;
if(x<0)
{
flag=0;
x=abs(x);
}
while(x)
{
sum=sum*10+x%10;
x=x/10;
}
if(flag==1)
{
if(sum>2147483647) return 0;
return sum;
}
else
{
if((-1*sum)<-2147483648) return 0;
return -1*sum;
}
}