hdoj-2032-杨辉三角

#include<stdio.h>
int main()
{
    long long a[40][70];//二维矩阵用来存放数据
    int i,j,n;
    for(i=0;i<70;i++)//设定第一行的初始值
    {
        a[0][i]=0;
        if(i==35||i==37)
        a[0][i]=1;
    }
    for(i=0;i<39;i++)//退出后面的数据
        for(j=0;j<68;j++)
        a[i+1][j+1]=a[i][j]+a[i][j+2];
    while(scanf("%d",&n)!=EOF)
    {
        putchar('1');//输出第一行
        putchar('\n');
        for(i=0;i<n-1;i++)//控制输出杨辉三角
        {
            int flag=0,num=0;
            for(j=0;j<70;j++)
            {

                if(a[i][j]==1&&!flag)
                flag=1;
                if(a[i][j]==1)
                num++;
                if(!flag||num==2)
                continue;
                if(a[i][j]==0)
                putchar(' ');
                else
                printf("%lld",a[i][j]);
            }
            putchar('1');//补末尾的0
            putchar('\n');
        }
        putchar('\n');//每一组数据后面有回车
    }
    return 0;
}

 

posted @ 2013-06-10 11:45  nylg-haozi  阅读(212)  评论(0编辑  收藏  举报