如何反转一个数字?
示例1:x = 123,返回321
示例2:x = -123,返回-321
这是我的回答:
public int reverse(int x) {
int result = 0;
while(x != 0){
result = result * 10 + x % 10;
x = x / 10;
}
return result;
}
但是当我输入 1534236469 时,它会输出 1056389759 ,这是错误的。你觉得我的计划怎么样?谢谢。
您的程序无法给出正确答案的原因之一是您
店铺result
in an int
但你希望能够
将数字 1534236469 反转。
正确答案是 9646324351,
但这个数字大于一个的最大可能值int
所以你最终会得到别的东西。
尝试long long
或者尝试使用不超过 9 位的输入。
跟进:我建议long long
因为那会相当可靠地给你
8 字节整数。您还可以在 a 中获得 8 个字节long
, 根据
您在哪里构建代码,
但 32 位 Windows 上的 Visual C++(例如)将
只给你4个字节。可能 4 字节 long 很快就会像 2 字节 int 一样,但此时我们中的一些人仍然必须处理它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)