2016-11-07 5 views
-1

私はjavaのピラミッドの数字の合計を計算しようとしています。このために、数学的ルールは2 + 5 + 8 + 9です。私は最初の行+ 2番目の行の最初の数+そのような3番目の行の2番目の数を意味します。例えばピラミッドの数を計算する

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のビルドイン機能を使用している

+0

あなたのピラミッドを形成しながら数字を追加... – Abhishek

+0

は配列として表さあなたのピラミッドですか? –

+0

@Abhishekどうすればjavaコードでこれを行うことができますか? – diad

答えて

1

int result = 2+5+8+9; 

あなたは2次元配列としてあなたのピラミッドを構築する必要があります。

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

各行の最大数を合計したいと思います。これは2 + 5 + 8 + 9です。つまり、最初の行+ 2番目の行+そのような3列目の番号 – diad

+0

ああ、私は参照してください。質問を編集してその重要な情報を質問に追加してください。 – xenteros

+0

私は何をすべきなのですか? – diad

1

follwoingコード試してみてください。

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

をしかし、あなただけの2次元配列にあなたのピラミッドを置く場合、全体whingは、はるかに簡単かつ明確になります。

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

テストとインデックスの基礎となる、エラーを返す – diad

+0

java.lang.ArrayIndexOutOfBoundsExceptionがエラーを返す – diad

+0

右に、エラーが見つかりました。 – FatTony