题目
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231,231-1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。
示例一
输入: x = 123
输出 321
思路
- 利用数学算法 取余获取值的最后一位
- 判断溢出范围
解题
public int reverse(int x) {
int result = 0;
//x !=0 为循环条件
while(x!=0) {
//判断溢出条件
if (result>Integer.MAX_VALUE /10 || result<Integer.MIN_VALUE /10) {
return 0;
}
//取余获取最后一位的值
int temp = x % 10;
//乘10拼接值
result = result * 10 + temp;
//原值 x / 10 更新下一位
x/=10;
}
return result;
}