【发布时间】:2018-03-10 03:49:10
【问题描述】:
class Solution {
public int reverse(int x) {
int ans = 0;
while (x != 0) {
int val = x % 10;
int tmp = ans;
ans = ans * 10 + val;
if ((ans - val) / 10 != tmp) {
return 0;
}
x /= 10;
}
return ans;
}
}
我用这段代码来解决倒数问题。如果我在纸上做它并使用负数作为输入,我会得到不同的结果。我相信这与 java 处理 Mod 的方式有关。请有人能解释一下这个案例。
-429 在纸上给我 186,而在计算机上 -924 为什么?
【问题讨论】:
-
您是否使用调试器逐行逐行查看代码和论文中的结果有何不同?这就是您解决此类问题的方式。
-
-429的反面是186?