首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

Java 使用巢狀迴圈輸出楊輝三角完整範例

     編輯:Java 程式設計入門

楊輝三角規律

  • 第 i 行(從 0 起算)有 i+1 個數。
  • 兩側皆為 1。
  • 內部數值 = 左上 + 右上:triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]。

完整程式碼

public class YanghuiTriangle {
    public static void main(String[] args) {
        int rows = 10;
        int[][] triangle = new int[rows][];

        for (int i = 0; i < rows; i++) {
            triangle[i] = new int[i + 1];          // 第 i 行長度 i+1
            for (int j = 0; j <= i; j++) {
                if (j == 0 || j == i) {
                    triangle[i][j] = 1;            // 兩側為 1
                } else {
                    triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]; // 內部計算
                }
                System.out.print(triangle[i][j] + "\t");
            }
            System.out.println(); // 換行
        }
    }
}

執行結果


1
1	1
1	2	1
1	3	3	1
1	4	6	4	1
1	5	10	10	5	1
1	6	15	20	15	6	1
1	7	21	35	35	21	7	1
1	8	28	56	70	56	28	8	1
1	9	36	84	126	126	84	36	9	1

進階變化

  1. 格式化對齊:計算最大數字寬度,使用 String.format("%" + w + "d", val) 使三角形置中。
  2. 記憶體優化:僅保留上一行 int[] prev,滾動更新,空間 O(n) → O(1)。
  3. 遞迴實作:C(n,k) = C(n-1,k-1) + C(n-1,k),配合快取避免重複計算。
  4. 組合數學公式:C(n,k) = n!/(k!(n-k)!) 直接計算任一位置,適合單點查詢。

滾動陣列優化版

public static void printPascal(int rows) {
    int[] prev = new int[1];
    prev[0] = 1;
    for (int i = 0; i < rows; i++) {
        int[] cur = new int[i + 1];
        cur[0] = cur[i] = 1;
        for (int j = 1; j < i; j++) cur[j] = prev[j-1] + prev[j];
        for (int v : cur) System.out.print(v + "\t");
        System.out.println();
        prev = cur;
    }
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved