楊輝三角

楊輝三角,又叫帕斯卡三角形,是一個(gè)三角形矩陣,其頂端是 1,視為(row0).第1列(row1)(1&1)兩個(gè)1,這兩個(gè)1是由他們上頭左右兩數(shù)之和 (不在三角形內(nèi)的數(shù)視為0).依此類(lèi)推產(chǎn)生第2列(row2):0+1=1;1+1=2;1+0=1.第3列(row3):0+1=1;1+2=3; 2+1=3;1+0=1. 循此法可以產(chǎn)生以下諸列。


2016-02-18_56c5c49a77924.jpg.png

分析:(a+b)^n的展開(kāi)式中的各項(xiàng)系數(shù)依次對(duì)應(yīng)楊輝三角的第(n+1)行中的每一項(xiàng)。
由此可通過(guò)排列組合式來(lái)求得其對(duì)應(yīng)的每一項(xiàng)系數(shù),即楊輝三角的對(duì)應(yīng)位置的值。
組合公式為:c(n,m)=p(n,m)/m!=n!/((n-m)!*m!)
也可利用隊(duì)列來(lái)做,在教科書(shū)上有范例,但較數(shù)學(xué)方法復(fù)雜;
#include<stdio.h>
#define SIZE_TRIANGLE 12

//利用組合公式計(jì)算每一個(gè)數(shù) 
int GetResult(int row,int col)
{
    double multiple=1;
    int result=0;
    for(int i=1;i<=col;i++)
    {
        multiple*=(double)(row-i+1)/i;
    }
    result=(int)multiple;
    return result;
}

int main()
{
    for(int i=0;i<=SIZE_TRIANGLE;i++)
    {
        for(int j=0;j<=SIZE_TRIANGLE-i;j++)
        {
            printf("  ");
        }
        for(int k=0;k<=i;k++)
        {
            printf("%3d ",GetResult(i,k));
        }
        printf("\n");
    }
    return 0;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容