我正在完成这项任务,我需要找到平均2个整数。 这是我的代码:
public class AverageNumber {
public int average(int a, int b) {
if (a == Integer.MIN_VALUE && b == Integer.MIN_VALUE) {
return Integer.MIN_VALUE;
} else if (a < 0 || b < 0) {
return (a + b)/2;
}
return (a+b)>>>1;
}
}`
我在这个测试中失败了:
Input: -2147483648, -2
Expected: -1073741825
Actual: "1073741823"
我需要一些帮助处理超出范围的数字= Integer.MIN_VALUE。而且我不能使用长型。
答案 0 :(得分:0)
听起来像家庭作业:-) 它更像是一个数学问题,而不是一个编程问题。
计算两者之间的差异,并将差异的一半加到“较小”数字上。你必须更详细地说明负数,但这样你就不会“溢出”一个int。