Java 计算金字塔的数量

Java 计算金字塔的数量,java,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(" " +

我试图用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+5+8+9的最简单方法是使用Java内置功能:

int result = 2+5+8+9;
您应该将棱锥体构造为二维阵列

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);

请尝试以下代码:

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);

在形成金字塔时添加数字…金字塔是否表示为数组?@Abhishek我如何在java代码中实现这一点?请展示一些代码。这个金字塔是静态的还是动态的?这个金字塔是如何存储的?@Nikolas Charalambidis不,我怎么能用数组来存储这个金字塔呢?我的意思是数字是不同的,我怎么能这样写我想把每一行的最大数量加起来。对于这个,数学规则是2+5+8+9。我的意思是第一行+第二行的第一个数字+第三行的第二个数字,就像这样哦,我明白了。你能编辑你的问题并将关键信息添加到问题中吗?java.lang.ArrayIndexOutOfBoundsException给出了错误,但我认为它计算错误。因为2+5+8+9=24,但它给出了26个结果。它总是给出实际总和的两个以上。有点错误看你的金字塔,在第二层,7是最大的数字,所以应该是2+7+8+9,这是26是的,但规则是第一行+第二行的第一个数字+第三行的第二个数字,像这样。因此我很难计算2+5+8+9,而不是7。