7. 整数反转
程序员文章站
2022-04-24 16:17:57
...
#7. 整数反转
题目描述
解题思路
这道题其实也很简单,重点在于是否溢出的判定。
int型的范围要记住:231-1=2147483647,-231=-2147483648
public int reverse(int x) {
int re = 0,pop = 0;
while(x != 0){
pop = x%10;
if (re > Integer.MAX_VALUE/10 || re < Integer.MIN_VALUE/10)
return 0;
re = re*10 + pop;
x = x/10;
}
return re;
}
看评论发现题解里面多了对pop的判断,如下:
改进之后的判断条件如下:
if (rev > Integer.MAX_VALUE/10 || (rev == Integer.MAX_VALUE / 10 && pop > 7)
return 0;
if (rev < Integer.MIN_VALUE/10 || (rev == Integer.MIN_VALUE / 10 && pop < -8))
return 0;