第 i 行(從 1 計)第 j 個數(從 1 計)為組合數 C(i-1, j-1)。相鄰項關係:
C(n, k) = C(n, k-1) * (n - k + 1) / k
即:當前數 = 前一數 × (行號 - 列號) / 列號。
#include <stdio.h>
int main(void) {
int n;
printf("請輸入行數: ");
if (scanf("%d", &n) != 1 || n <= 0) return 1;
for (int i = 1; i <= n; ++i) {
long val = 1; // 使用 long 防止中間溢出
for (int j = 1; j <= i; ++j) {
printf("%ld ", val);
val = val * (i - j) / j; // 關鍵遞推公式
}
putchar('\n');
}
return 0;
}
請輸入行數: 5 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1