#include<stdio.h>
int main()
{
int a[10][10],i,j;
a[0][0]=1
for(i=2;i<10;i++)
for(j=2;j<i;j++)
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
printf("5%d",a[i][j]);
}
printf("\n");
return 0;
}

解决方案 »

  1.   

    int a[10][10],i,j;
    int entries;
    a[0][0]=1;
    for(i=2;i<10;i++)
    {
    for(j=2;j<i;j++)
    {
    a[i][j]=a[i-1][j-1]+a[i-1][j];
    printf("5%d",a[i][j]);
    }
    printf("\n");
    }
      

  2.   

    主要思想是递归的应用,其他没有啥!#include<stdio.h>
    int main()
    {
      //参数为行数,想输入
      Pascal(10);
    }int Combination(int m,int n)
    {
       if(n===0)
          return 1; //每行第一个数为1
       else if(m==n)
          return 1; //最后一个数为1
       else
          return Combination(m-1,n-1)+Combination(m-1,n); //其余都是相加而来,利用递归
    }int Pascal(int n)
    {
       for(int i=0;i<n;i++)
       {
          for(int j=0;j<=i;j++)
          {
               printf("5%d\t",Combination(i,j));
          }
          printf("\n");
       }
    }
      

  3.   

    更正一下方法的返回值#include<stdio.h>
    int main()
    {
      //参数为行数,想输入
      Pascal(10);
    }int Combination(int m,int n)
    {
       if(n===0)
          return 1; //每行第一个数为1
       else if(m==n)
          return 1; //最后一个数为1
       else
          return Combination(m-1,n-1)+Combination(m-1,n); //其余都是相加而来,利用递归
    }void Pascal(int n)
    {
       for(int i=0;i<n;i++)
       {
          for(int j=0;j<=i;j++)
          {
               printf("5%d\t",Combination(i,j));
          }
          printf("\n");
       }
    }
      

  4.   

    #include<stdio.h>
    int main()
    {
        int a[10][10],i,j,k;
        a[0][0]=a[1][0]=a[1][2]=1;
        a[1][1]=2;
        for (i=2;i<10;i++)
        {
         a[i][0]=a[i][i+1]=1;
         for(j=1;j<=i;j++)
          a[i][j]=a[i-1][j-1]+a[i-1][j];
        }
        printf("                           %d\n",a[0][0]);
        for(i=1;i<10;i++)
        {
         for(k=0;k<20-i*2+2;k++)
        printf(" ");
         for(j=0;j<i+2;j++)
         printf("%4d",a[i][j]);
        printf("\n");
        }
        return 0;
    }