如何用C++實(shí)現(xiàn)楊輝三角的輸出,首先我們來分析楊輝三角的數(shù)學(xué)規(guī)律:
1、每行的第一和最后一個(gè)數(shù)都為1;
2、除去前兩行,每個(gè)數(shù)是其上一行對應(yīng)位置的兩個(gè)數(shù)之和
我們把規(guī)律2推廣,即在每一行的前排采用補(bǔ)0的方法,使第二行開始的每個(gè)數(shù)都是上一行對應(yīng)位置兩個(gè)數(shù)的和
利用規(guī)律2,我們知道可以用上一行的元素求出下一行的元素,在這里我們選擇隊(duì)列的方式,用隊(duì)列保存上一行元素,來求本行元素
使用過的數(shù)在隊(duì)列中出棧,新的數(shù)進(jìn)棧。這樣一次次更新。
#include<iostream>#include<queue>using namespace std;void Out_number(int n){ int s1, s2; queue<int> Q; cout << " "<<1 << endl; Q.push(1); for (int i = 2;i <= n;i++) { for (int j = 0;j < n - i;j++) cout << " "; s1 = 0; for (int j = 1;j <= i - 1;j++) { s2 = Q.front(); Q.pop(); cout << s1 + s2 << " "; Q.push(s1 + s2); s1 = s2; } cout << 1<<endl; Q.push(1); }}int main(){ int n; //記錄要輸出的行數(shù) cout << "輸入行數(shù):" << endl; cin >> n; Out_number(n); return 0;}
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注