使用小于整数最小值的数字获得算术平均值?

时间:2016-03-06 18:44:36

标签: java c++ average

我正在完成这项任务,我需要找到平均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。而且我不能使用长型。

1 个答案:

答案 0 :(得分:0)

听起来像家庭作业:-) 它更像是一个数学问题,而不是一个编程问题。

计算两者之间的差异,并将差异的一半加到“较小”数字上。你必须更详细地说明负数,但这样你就不会“溢出”一个int。