HDU 2032 杨辉三角

问题描述

还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1

输入

输入数据包含多个测试实例,每个测试实例的输入只包含一个正整数n(1<=n<=30),表示 将要输出的杨辉三角的层数。

输出量

对应于每一个输入,请输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开,每一 个杨辉三角后面加一个空行。

样本输入

2 3

样本输出

1
1 1

1
1 1
1 2 1

代码

#include <iostream>
#include <algorithm>
using namespace std;
int main(){
    int i,j,n;
    int yanghui[30];
    while(cin>>n){
        fill(yanghui,yanghui+30,0);
        yanghui[0]=1; //每行的第一个元素为1
        for (i = 0;  i<n; i++) {
            cout<<1;      //输出第一个元素1
            for(j=i;j;j--){  //每行其余元素的值,在上一行的基础上得到下一行的元素
                yanghui[j] +=yanghui[j-1];
            }
            for(j=1;j<=i;j++){  //每行从第二个元素开始输出
                cout<<yanghui[j];
            }
            cout<<endl;
        }
        cout<<endl;
    }
    return 0;
}
上一篇:HDU 2036 改革春风吹满


下一篇:2022.1.29#HDU-1073 Online Judge