整数反转
给你一个 32 位的有符号整数 x
,返回将 x
中的数字部分反转后的结果 ,如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1]
,就返回 0。
思路:
- 定义一个 res 变量等于 0
- while 循环 接收的整数
- 设置 res 变量等于 res * 10 + x % 100, : 变相增加一位
- 判断当前的 res 是否 大于 32位有符号整数 大于的话 返回 0
- 设置 接收的值 x = ~~(x % 10): ~~ 去除数字的小数位 变相减少一位
代码实现:
function reverse(x: number): number {
let res = 0;
while (x) {
res = res * 10 + x % 10; // res + x % 10 的余数
if (res > Math.pow(2, 31) - 1 || res < Math.pow(-2, 31)) return 0;
x = ~~(x / 10); // x 除于 10 去掉小数
}
return res;
};
reverse(12345)