给定一个 32 位有符号整数,将整数中的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
注意:
假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。
最大有符号整数为:2147483647;最小有符号整数:-2147483648.
int reverse(int x) {
int temp=0;
int value=0;
if(x>INT_MAX||x<INT_MIN||x==0)
return 0;
else
{
while(x!=0)
{
temp=x%10;
x/=10;
if(value>INT_MAX/10||(value==INT_MAX/10&&temp>7))
return 0;
if(value<INT_MIN/10||(value==INT_MIN/10&&temp<-8))
return 0;
value=value*10+temp;
}
return value;
}
}