解一,循环取模
- 循环取
x % 10
的模k
同时削去x
一位低位 - 将
k
与上次结果res
乘以10
后相加得到新的res
- 如果不是最后一位,则检查溢出,当
res * 10 / 10
不等于res
时返回零
- 如果不是最后一位,则检查溢出,当
- 直到
k = 0
时退出循环,返回res
pub fn reverse(mut x: i32) -> i32 {
let mut res = 0i32;
while x != 0 {
let k = x % 10;
res = res * 10 + k;
if (x.abs() >= 10) && (res * 10 / 10 != res) {
return 0;
}
x /= 10;
}
return res;
}
时间:
为整数位数
空间: