HDOJ印刷楊輝三角C言語実現

3102 ワード

中学時代に習った楊輝三角を覚えていますか.具体的な定義はここでは説明しませんが、1 1 1 1 1 2 1 1 3 1 4 4 1 5 10 5 1を参照してください.
Input
入力データには複数のテストインスタンスが含まれ、各テストインスタンスの入力には正の整数n(1<=n<=30)のみが含まれ、出力する楊輝三角の層数を表す.
Output
各入力に対応して、対応する層数の楊輝三角を出力し、各層の整数間をスペースで区切り、各楊輝三角の後ろに空行を追加します.
Sample Input
2 3
Sample Output
1 1 1
1 1 1 1 2 1
質問分析:楊輝三角を配列に保存してから、問題の要求に従って出力することができます.このように簡単だと思います.もちろん、問題の要求に従って印刷することもできます.初心者のプログラミング問題であることを考慮して、私は最も受け入れやすい方法でコードを書きます.以下のようにします.
#include
void main()
{
    int n;
    int a[30][31]={0};
    int i,j;

    a[0][0]=a[1][0]=a[1][1]=1;                // 2 , 

    for(i=2;i<30;i++)                  
        for(j=0;j1;j++)
        {
            if(j==0||j==i)
                a[i][j]=1;                      // , 1
            else
                a[i][j]=a[i-1][j-1]+a[i-1][j];  // 
        }

        while(scanf("%d",&n)!=EOF)                // 
        {
            for(i=0;ifor(j=0;a[i][j]!=0;j++)
                {
                    if(j==i)
                        printf("%d",a[i][j]);
                    else
                        printf("%d ",a[i][j]);  // , 
                }
                printf("
"
); } printf("
"
); // , } }