杭电acm2032

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

用数组打表来做,首尾是1,其余的是上一行的这个数和前一个数的和

#include<stdio.h>
int main()
{
    int yh[50][50],i,j,n;
    yh[0][0]=yh[1][0]=yh[1][1]=1;
    for(i=2;i<=30;i++)
       for(j=0;j<i+1;j++)
       {
           if(j==0||j==i)
            yh[i][j]=1;
           else yh[i][j]=yh[i-1][j-1]+yh[i-1][j];
       }
    while(scanf("%d",&n)!=EOF)
    {
         for(i=0;i<n;i++)
           {
             for(j=0;j<i+1;j++)
               if(j==0)
                 printf("%d",yh[i][j]);
               else printf(" %d",yh[i][j]);
             printf("\n");
           }
           printf("\n");
    }
    return 0;
}
View Code
原文地址:https://www.cnblogs.com/huzhenbo113/p/3087869.html