如何从int数组创建交替整数的总和?

时间:2016-11-20 20:18:30

标签: java arrays

我应该计算数组中所有元素的交替总和。例如,值 1 4 9 16 9 7 4 9 11 的数组应计算

  

1 - 4 + 9 - 16 + 9 - 7 + 4 - 9 + 11 = -2

以下代码由讲师提供

 public static void main(String[] args)
 {
  double[] data = { 1, 4, 9, 16, 9, 7, 4, 9, 11 };
  AlternatingSum util = new AlternatingSum();
  double total = util.alternatingSum(data);
  System.out.println("Expected sum:  -2");
  System.out.println("Alternating sum: " + total);
 }

util.alternatingSum(数据)是什么意思?我是否必须创建alternatingSum方法?如果是这样,那个方法的标题代码是什么?

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

  

util.alternatingSum(数据)是什么意思?

它调用AlternatingSum类的alternatingSum(double [])方法。 util是AlternatingSum类的对象,用于调用此方法。

  

我是否必须创建alternatingSum方法?

如果代码不存在,此代码将无法编译!

您需要有一个AlternatingSum课程,其中您有alternatingSum()方法。

所以,是的,你需要让这段代码能够成功编译和执行。

  

如果是这样,那个方法的标题代码是什么?

方法标题应为:

double alternatingSum(double[])
{
  // your code goes here.
}

因为此方法接受一个双精度数组,并返回一个double值。

答案 1 :(得分:0)

以下是使用Java 8流的示例:

double[] data = { 1, 4, 9, 16, 9, 7, 4, 9, 11 };
double result = IntStream.range(0, data.length)
    .mapToDouble(i  -> i)
    .map(i -> i % 2 == 0 ? data[(int)i] : data[(int)i]*-1)
    .sum();
System.out.println(result);

答案 2 :(得分:-1)

这是你的方法,

public double alternatingSum(double in) {
double alternatingSum = in;
if(data != null || dataSize > 0) {
    for(int i = 0; i < dataSize; i = i + 2) {
        alternatingSum += data[i];
    }
    for(int i = 1; i < dataSize; i = i + 2) {
        alternatingSum -= data[i];
    }
}
return alternatingSum;
}

I found it here