如何编写一个程序,将一个整数序列读入一个数组,并计算数组中所有元素的交替总和? [英] How to write a program that reads a sequence of integers into an array and that computes the alternating sum of all elements in the array?
本文介绍了如何编写一个程序,将一个整数序列读入一个数组,并计算数组中所有元素的交替总和?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
编写一个程序,将一个整数序列读入一个数组,并计算数组中所有元素的交替和。例如,如果用输入数据执行程序
Write a program that reads a sequence of integers into an array and that computes the alternating sum of all elements in the array. For example, if the program is executed with the input data
1 4 9 16 9 7 4 9 11
那么它计算
1 4 9 16 9 7 4 9 11 then it computes
1 - 4 + 9 - 16 + 9 - 7 + 4 - 9 + 11 = - 2
1 - 4 + 9 - 16 + 9 - 7 + 4 - 9 + 11 = - 2
到目前为止,我的代码如下:
I have below code so far:
import java.util.Arrays;
/**
This class computes the alternating sum
of a set of data values.
*/
public class DataSet
{
private double[] data;
private int dataSize;
/**
Constructs an empty data set.
*/
public DataSet()
{
final int DATA_LENGTH = 100;
data = new double[DATA_LENGTH];
dataSize = 0;
}
/**
Adds a data value to the data set.
@param x a data value
*/
public void add(double x)
{
if (dataSize == data.length)
data = Arrays.copyOf(data, 2 * data.length);
data[dataSize] = x;
dataSize++;
}
/**
Gets the alternating sum of the added data.
@return sum the sum of the alternating data or 0 if no data has been added
*/
public double alternatingSum()
{
. . .
}
}
我必须使用以下类作为测试者类:
I have to use the following class as the tester class:
/**
This program calculates an alternating sum.
*/
public class AlternatingSumTester
{
public static void main(String[] args)
{
DataSet data = new DataSet();
data.add(1);
data.add(4);
data.add(9);
data.add(16);
data.add(9);
data.add(7);
data.add(4);
data.add(9);
data.add(11);
double sum = data.alternatingSum();
System.out.println("Alternating Sum: " + sum);
System.out.println("Expected: -2.0");
}
}
推荐答案
我为你实现了alternateSum方法:
I implemented the method alternatingSum for you:
public double alternatingSum() {
double alternatingSum = 0;
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;
}
这篇关于如何编写一个程序,将一个整数序列读入一个数组,并计算数组中所有元素的交替总和?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文