楊輝三角模板

2021-08-07 12:16:21 字數 2419 閱讀 4250

楊輝三角的多種解法

一:二維陣列

遞推公式:f[1][1]=1 ,  f[i][j]=f[i-1][j-1]+f[i-1][j]

核心**:

[cpp]view plain

copy

f[1][1]=0;  

for(

inti=1;i<10;i++)  

}  二:一維陣列

思想:用乙個一維陣列把相鄰兩個數的和計算出來儲存,到下一行時就輸出。

**:[cpp]view plain

copy

#include 

void

main()  

;  int

b[80] = ;  

inti, j;  

b[1]=1;  

for(i = 1; i <= n; i++)  

printf("\n"

);  

}   

}  

分析: 

其思路是用一維陣列做

,實際上用的是兩個一維陣列

a, b.其中a

是儲存當前行各元素的值, 而

b可以認為是乙個臨時陣列

, 它是

a的乙個備份

, 也就是說在每行

a元素置數完畢後,將

a中的內容拷貝到b中

,因為進行下一行的運算時

, a會被重置

, , 

這樣在計算下一行的

a時就可以用儲存在

b中的上一行的元素了

(咋感覺這麼囉嗦呢

^_^)

。也正因為如此

, 在每一行運算完之後

,就要將其輸出顯示

, 下一行時

a就是新值了。所以用這種方法最後程式結束時並沒有將三角中所有元素儲存下來,只是在程式執行過程中將其輸出。

再看其程式的核心部分: a[j] = b[j] + b[j-1]; 

其開始定義了陣列

a[80],b[80],0

號元素並未使用,即每一行的元素都是從

a[1]

開始的。但這個

0號元素是不是真的沒用呢?稍加分析可知當然否,而且感覺這個

0號元素用的挺巧妙,比如說到第5行時

(其實與第幾行沒關係

),輸出第乙個元素的語句是 

a[1]=b[1]+b[0], 

由於b[1]

為1, 這時0

號元素就派上用場了

,b[0]

為0, 

可以將每一行的第乙個元素置為

1, 往下走有第二個元素 

a[2]=b[2]+b[1]; ...

開始按楊輝三角的規律走。同理,到最後乙個元素時,

a[5]=b[5]+b[4]

,在上一行中只有

4個元素,即此時

b中只有

4個有效元素,那這個

b[5]

算什麼呢?其實它跟那個

0號元素有相同的作用,因為初始化時陣列中的所有元素都置為

0,所以這時的

b[5]為0

,由b[4]為1

可得a[5]為1

。這樣可以將每一行的最後乙個元素置為

1。對於各行,此法均適用,實際上就是在滿足楊輝三角兩側值均為

1的規律。

三:二項式定理:

公式:第n行第i

個數表示為

c(n-1,r)    

注:c(n,m)=n!/[m!(n-m)!]

**:[cpp]view plain

copy

#include

#include

using

namespace

std;  

intc(

intn,

intm)  

return

k;  

}  int

main()  

printf("\n"

);  

}  return

0;  

}  

四:遞推公式法:

hdu4927。

這個方法感覺跟二項式有點關係。

這個方法就直接貼**啦。

[cpp]view plain

copy

#include

#include

using

namespace

std;  

intmain()  

printf("\n"

);  

}  return

0;  

}  

python楊輝三角 楊輝三角I II

給定乙個非負整數 numrows,生成楊輝三角的前 numrows 行。在楊輝三角中,每個數是它左上方和右上方的數的和。示例 輸入 5 輸出 1 1,1 1,2,1 1,3,3,1 1,4,6,4,1 可以一行一行錯位加,當然這裡提供更簡便的方法。任取一行描述 1,2,1 如何得到 1,3,3,1 ...

Java 楊輝三角

public class yanghui 生成指定行數的楊輝三角形 param lines 楊輝三角形的行數 public void printyanghui int lines if lines 30 int line new int lines int maxlen getmaxlen line...

輸出楊輝三角

程式的版權和版本宣告部分 檔名稱 fibnacci.cpp 作 者 單虹毓 完成日期 2013 年 12 月 4 日 版本號 v1.0 輸入描述 無 問題描述 楊輝三角 程式輸出 1 第0列和對角線上的元素都為1。程式輸出 2 除第0列和對角線上的元素以外,其它元素的值均為前一行上的同列元素和前一列...