如何编写一个程序,将一个整数序列读入一个数组,并计算数组中所有元素的交替总和? [英] 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?

查看:1075
本文介绍了如何编写一个程序,将一个整数序列读入一个数组,并计算数组中所有元素的交替总和?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

编写一个程序,将一个整数序列读入一个数组,并计算数组中所有元素的交替和。例如,如果用输入数据执行程序

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆