文章

28

粉丝

226

获赞

53

访问

144.6k

头像
老老实实写
Sacan SVIP
P1062 北京大学/湖南大学机试题
发布于2022年6月3日 11:59
阅读数 4.5k

每一个数都等于它肩膀上的两个数相加。老老实实写就行

代码没做优化,看着挺丑

#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;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发