1

2D int 配列を使用してパスカルの三角形を印刷しようとしています

そして、以下の方法で2D配列を印刷します

public static void pascal (int n)
     { 
        int[][] pascalArray = new int[n][n];

        // Code here

        }

        printArray(pascalArray);

    public static void printArray(int[][] array)
     {
         for (int i = 0; i < array.length; i++)
         {
             for(int j=0; j<array[i].length;j++)
             {
                 System.out.print(array[i][j] + " ");
             }
             System.out.println();
         } 

n =4 の場合

出力を下回っています

Enter rows in the Pascal's triangle (or 0 to quit): 4
1 0 0 0 
1 1 0 0 
1 2 1 0 
1 3 3 1 

今、きれいな印刷のためにゼロまたは二等辺三角形の代わりに空白が必要です

それは2D int配列で可能ですか、それともprintArrayメソッドで2D int配列を文字列配列に変更して同じことを達成できますか?

system.out.format を試しましたが、int 2D 配列のために出力を取得できない方法がいくつかあります

4

2 に答える 2

2

三角形が必要で、配列が正方形であることがわかっている場合は、単純に内側のループの上限を変更できます。

     for (int i = 0; i < array.length; i++)
     {
         for(int j=0; j<=i; j++)
         {
             System.out.print(array[i][j] + " ");
         }
         System.out.println();
     } 
于 2015-09-16T21:09:46.250 に答える
0

以下に追加した指示を追加するだけでかまいません。配列内の値が「0」に等しくない場合にのみ出力されます。文字列配列の場合は、equals()メソッドを使用します

 for (int i = 0; i < array.length; i++)
 {
     for(int j=0; j<array[i].length;j++)
     {
         if (array[i][j] != 0) System.out.print(array[i][j] + " ");
     }
     System.out.println();
 } 
于 2015-09-16T21:32:01.540 に答える