文章
28
粉丝
226
获赞
53
访问
144.6k
每一个数都等于它肩膀上的两个数相加。老老实实写就行
代码没做优化,看着挺丑
#include <iostream>
#include <vector>
using namespace std;
void show(int n){
vector<vector<int>> tri(n, vector<int>(n, 1));
if(n == 0){
return;
}
if(n == 1){
cout << 1 << endl;
return;
}
if(n == 2){
cout << "1" << endl;
cout << "1 1" << endl;
return;
}
tri[0] = {1};
tri[2] = {1, 1};
// 从第3行开始
for(int i = 2;i < n;i++){
for(int j = 1;j < i;j++){
tri[i][j] = tri[i-1][j-1] + tri[i-1][j];
}
}
//输出
for(int i = 0;i < n;i++){
for(int j = 0;j <= i;j++){
cout << tri[i][j] << " ";
}
cout << endl;
}
}
int main()
{
int n;
cin >> n;
while(n != 0){
show(n);
cin >> n;
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发