【发布时间】:2019-01-10 12:32:00
【问题描述】:
我正在尝试解决一个问题:
给定一个 32 位有符号整数,整数位反转,反转整数溢出时返回 0。
我的解决办法是:
public int reverse(int x)
{
int reversedNumber = 0;
boolean isNumberNegative = x < 0;
x = Math.abs(x);
while (x >= 10)
{
reversedNumber = reversedNumber * 10 + (x % 10);
x = x / 10;
}
reversedNumber = reversedNumber * 10 + x;
return isNumberNegative ? -1 * reversedNumber : reversedNumber;
}
我的问题是溢出,如果不使用Math 实用程序类或long 然后检查,我如何找出reversedNumber 是否溢出?
【问题讨论】:
-
它的加法,并且解决方案要求使用数学实用程序类,我正在寻找一个不使用实用程序类的解决方案。
-
识别所有可能溢出的输入,并分别处理。