计算金字塔的数量

时间:2016-11-07 12:12:40

标签: java

我正在尝试计算java中金字塔中数字的总和。为此,数学规则是2 + 5 + 8 + 9。我的意思是第一行+第二行的第一个数字+第三行的第二个数字。 int [] numbers = {2,5,7,1,8,3,6,0,9,4};        System.out.println(“”+ numbers [0]);        System.out.println(“”+ numbers [1] +“”+ numbers [2]);        System.out.println(“”+ numbers [3] +“”+ numbers [4] +“”+ numbers [5]);        System.out.println(“”+ numbers [6] +“”+ numbers [7] +“”+ numbers [8] +“”+ numbers [9]); 例如:    2   5 7  1 8 3 6 0 9 4 如何在Java中计算2 + 5 + 8 + 9?

2 个答案:

答案 0 :(得分:1)

计算2+5+8+9的最简单方法是使用Java内置功能:

int result = 2+5+8+9;

您应该将金字塔构建为2D数组。

int[] numbers = { 2,5,7,1,8,3,6,0,9,4 };
int addedElements = 0;
int nextSize = 1;
ArrayList<int[]> pyramid = new ArrayList<>();
while(addedElements< numbers.size()) {
    int[] level = new int[nextSize++];
    for (int i = 0; i < nextSize - 1; i++) {
        level[i] = numbers[addedElements++];
    }
}
int result = 0;
//add maximum of each `int[]` in pyramid.
for (int[] array : pyramid) {
    int currentMax = array[0];
    for (int i = 0; i < array.size(); i++) {
        if (array[i] > currentMax) {
            currentMax = array[i];
        }
    result+=currentMax;
}
System.out.println(result);

答案 1 :(得分:1)

尝试下面的代码:

int[] numbers = { 2,5,7,1,8,3,6,0,9,4 };
int index = 1;
int number = 2;
int result = numbers[0];

while (index < numbers.length) {
    result += numbers[index + number -2];   
    index += number;
    number += 1;
}

System.out.println(result);

但是如果你把金字塔放到一个二维数组中,那么整个事情会更容易和更清晰。

int[][] numbers = { {2},
                    {5,7},
                    {1,8,3},
                    {6,0,9,4} };

int result = numbers[0][0];
for (int i = 1; i < numbers.length; i++) {
    result += numbers[i][i-1];
}

System.out.println(result);