#include <stdio.h> #define N 12 long Combi(int n,int r) { long p=1; for (int i=1;i<=r;i++) { p=p*(n-i+1)/i; } return p; } int main() { int i,n,r,t; for (n=0;n<=N;n++) { for (r=0;r<=n;r++) { if (r==0) { for (i=0;i<=(N-n);i++) { printf(" "); } } else { printf(" "); } printf("%3d",Combi(n,r)); } printf("\n"); } }
巴斯卡三角形中的
nCr 可以使用以下這個公式來計算,以避免階乘運算時的數值溢位:
nCr
= [(n-r+1)/r] * nCr-1
nC0
= 1