我应该计算数组中所有元素的交替总和。例如,值 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方法?如果是这样,那个方法的标题代码是什么?
感谢您的帮助。
答案 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;
}