1

パスカル三角形を出力する Java プログラムを作成しましたが、正しく配置する方法がわかりません。

プログラム 1

public class Triangle {
    public static void main() {
        System.out.println("\nTriangle: ");
        int row = 11;
        long[][] triangle = new long[row][row];
        triangle[1][1] = 1;
        System.out.print(triangle[1][1] + "\n");

        for (int i = 2; i < row; i++) {
            for (int n = 1; n < row; n++) {
                triangle[i][n] = triangle[i-1][n-1] + triangle[i-1][n];
                if (triangle[i][n] > 0) {
                    System.out.print(triangle[i][n] + " ");
                }
            }
            System.out.println();
        }
    }
}

出力:

1
1 1 
1 2 1 
1 3 3 1 

プログラム 2

public class Triangle {
    public static void main() {
        System.out.println("\nTriangle: ");
        int row = 11;
        long[][] triangle = new long[row][row];
        int x = 1;
        while (x < row - 1) {
            System.out.print(" ");
            x++;
        }
        triangle[1][1] = 1;
        System.out.print(triangle[1][1] + "\n");

        for (int i = 2; i < row; i++) {
            x = i;
            while (x < row - 1) {
                System.out.print(" ");
                x++;
            }
            for (int n = 1; n < row; n++) {
                triangle[i][n] = triangle[i-1][n-1] + triangle[i-1][n];
                if (triangle[i][n] > 0) {
                    System.out.print(triangle[i][n] + " ");
                }
            }
            System.out.println();
        }
    }
}

出力:

     1
    1 1 
   1 2 1 
  1 3 3 1 
 1 4 6 4 1 
1 5 10 10 5 1 //(Notice this line is incorrectly positioned)

三角形が複数桁の数字に近づくと、崩れ始めて醜くなります。この醜い三角形の代わりに通常の三角形を表示する方法を誰かが説明できますか?

4

5 に答える 5

0
/**
 * @author Ranjith
 */
public class JavaApplication2 {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int i;
        int x;
        int n = 15; //number of rows
        String newLine = System.getProperty("line.separator");
        for (i = 0; i < n; i++) { //loop to adjust spacing
            x = i;
            while (x < n - 1) {
                System.out.print(" ");
                x++;
            }
            fib(i); //fibonacci function is called
            System.out.print(newLine);
        }
    }
    public static void fib(int num) { //fibonacci function
        int[] febo = new int[100];
        febo[0] = 0;
        febo[1] = 1;
        for (int i = 2; i < num; i++) {
            febo[i] = febo[i - 1] + febo[i - 2];
        }
        for (int i = 0; i < num; i++) {
            System.out.print(febo[i] + "  ");
        }
    }
}

出力:

             0  
            0  1  
           0  1  1  
          0  1  1  2  
         0  1  1  2  3  
        0  1  1  2  3  5  
       0  1  1  2  3  5  8  
      0  1  1  2  3  5  8  13  
     0  1  1  2  3  5  8  13  21  
    0  1  1  2  3  5  8  13  21  34  
   0  1  1  2  3  5  8  13  21  34  55  
  0  1  1  2  3  5  8  13  21  34  55  89  
 0  1  1  2  3  5  8  13  21  34  55  89  144  
0  1  1  2  3  5  8  13  21  34  55  89  144  233  
于 2014-07-06T05:59:47.103 に答える