輸出的楊輝三角中間數值全為 0,如:
1
1 1
1 0 1
1 0 0 1
陣列 int[][] a = new int[n][n] 預設值為 0。計算公式 a[i][j] = a[i-1][j-1] + a[i-1][j] 中,邊界條件判斷順序錯誤**或**輸出語句位置錯誤**,導致未正確賦值 1 即輸出。
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("請輸入行數 n:");
int n = sc.nextInt();
int[][] a = new int[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) { // 注意:j <= i
if (j == 0 || j == i) {
a[i][j] = 1; // 兩邊為 1
} else {
a[i][j] = a[i-1][j-1] + a[i-1][j]; // 中間 = 左上 + 正上
}
System.out.printf("%4d", a[i][j]); // 在賦值後立即輸出
}
System.out.println();
}
sc.close();
}
j <= i 而非 j < n,避免計算/輸出無效列。j==0 || j==i 賦值 1,再進入 else 計算中間值。