巴斯卡(Pascal)三角形 C語言實現

2021-09-30 07:15:47 字數 995 閱讀 1904

巴斯卡(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 放正了,就得到上面的...