题目描述
给定一个范围为 32 位 int 的整数,将其颠倒。
例1:
输入: 123
输出: 321
例二:
输入: -123
输出: -321
例三:
输入: 120
输出: 21
注意:假设我们的环境只能处理 32 位 int 范围内的整数。根据这个假设,如果颠倒后的结果超过这个范围,则返回 0。
解题思路
1.x%10,求得它的最后一位的数字(第一次的时候,把x%10存到result里面去);
2.result*10 + x%10;
3.不断循环,直到x == 0;
public int reverse(int x) {
long result = 0; //用long来存储结果是为了,后面的溢出检查
while(x != 0){
result = result*10 + x%10;
if (result > Integer.MAX_VALUE || result <Integer.MIN_VALUE){
return 0; //超过int的范围了
}
x = x/10;
}
return (int)result;
}