巴斯卡(pascal)三角形基本上就是在解 ncr ,因為三角形上的每乙個數字各對應乙個ncr,
其中 n 為 row,而 r 為 column,如下:
0c01c0 1c1
2c0 2c1 2c2
3c0 3c1 3c2 3c3
4c0 4c1 4c2 4c3 4c4
對應的資料如下圖所示:
1 1
1 2 1
1 3 3 1
1 4 6 4 1
解法巴斯卡三角形中的 ncr 可以使用以下這個公式來計算,以避免階乘運算時的數值溢位:
ncr = [(n-r+1)/r] * ncr-1
nc0 = 1
#include
#include
#define n 4
//巴斯卡三角形
long combi(int n,int r);
void paint();
int main(int argc, char *ar**)
paint();
system("pause");
return 0;
long combi(int n,int r)
int i;
long p=1;
for(i=1;i<=r;i++)
p=p*(n-i+1)/i;
return p;
void paint()
int n,r,t;
for(n=0;n<=n;n++)
for(r=0;r<=n;r++)
int i; //排版設定開始
if(r==0)
for(i=0;i<(n-n);i++)
printf(" ");
else
printf("");
}//排版設定結束
printf("%2d",combi(n,r));
printf("/n");
巴斯卡(Pascal)三角形
背景知識 巴斯卡是十七世紀的一位法國數學家,也是歷史上第一位發明了加法計算機的人!他造出 巴斯卡三角形 的方法是這樣的 先在紙上寫出一行和一列的 1 然後在各個位置中填入數字,每乙個位置上的數字都是它上面乙個數和左邊乙個數的和。接下來,把這個表右轉45 放正就得到上面的數字三角形了。現在的數學書裡,...
170423 巴斯卡三角形
include define n 5 總共6行 long combi int row,int location return position value row 代表行,從第0行開始 location 代表一行中的各個位置 position value 代表相應位置的值 void paint el...
巴斯卡三角形(楊輝三角)
參考資料 1.巴斯卡三角的來歷 2.巴斯卡是十七世紀的一位法國數學家,也是歷史上第一位發明了加法計算機的人!他造出 巴斯卡三角形 的方法是這樣的 先在紙上寫出一行和一列的 1 然後在各個位置中填入數字,每乙個位置上的數字都是它上面乙個數和左邊乙個數的和。接下來,把這個表右轉45 放正了,就得到上面的...