如何用C++实现杨辉三角的输出,首先我们来分析杨辉三角的数学规律:
1、每行的第一和最后一个数都为1;
2、除去前两行,每个数是其上一行对应位置的两个数之和
我们把规律2推广,即在每一行的前排采用补0的方法,使第二行开始的每个数都是上一行对应位置两个数的和
利用规律2,我们知道可以用上一行的元素求出下一行的元素,在这里我们选择队列的方式,用队列保存上一行元素,来求本行元素
使用过的数在队列中出栈,新的数进栈。这样一次次更新。
#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; //记录要输出的行数 cout << "输入行数:" << endl; cin >> n; Out_number(n); return 0;}
新闻热点
疑难解答
图片精选