hdu 2032 杨辉三角

http://acm.hdu.edu.cn/showproblem.php?pid=2032

题目大意

输入数据包含多个测试实例,每个测试实例的输入只包含一个正整数n(1<=n<=30),表示将要输出的杨辉三角的层数。对应于每一个输入,请输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开,每一个杨辉三角后面加一个空行。

Sample Input

2

3

Sample Output

1

1 1

1

1 1

1 2 1

方法与总结

  • 算出杨辉三角用二维数组保存
  • 输出的时候注意是每层的两个数之间有空格隔开,而每层最后是没有空格的,如果有空格,提交的时候则会出现CE。

代码

#include<iostream>
using namespace std;

void Yanghui(int n)
{
    int **p=new  int*[n];
    for(int i=0;i<n;i++)
        p[i]=new int[i+1];
    p[0][0]=1;
    for(int i=0;i<n;i++)
    {
        p[i][0]=1;
        for(int j=1;j<i;j++)
        {
            p[i][j]=p[i-1][j-1]+p[i-1][j];
        }
        p[i][i]=1;
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<i+1;j++)
        {
            if(j==0)
            cout<<p[i][j];
            else
            cout<<" "<<p[i][j];
        }
        cout<<endl;
    }
    cout<<endl;
}

int main()
{
    int n;
    while(cin>>n)
        Yanghui(n);
    return 0;
}
/* bottom:40px 距浏览器底部距离 right:40px 距浏览器右边距离 */