1.倒推法实现输出杨辉三角右半部分,代码如下:
1 #include<stdio.h> 2 int main() 3 { 4 int n,i,j,a[100]; 5 printf("请输入行数n:"); 6 scanf("%d",&n); 7 printf(" 1"); 8 printf("\n"); 9 a[1]=a[2]=1; 10 printf("%3d%3d\n",a[1],a[2]); 11 for(i=3;i<=n;i++) 12 { 13 a[1]=a[i]=1; 14 for(j=i-1;j>1;j--) 15 a[j]=a[j]+a[j-1]; 16 for(j=1;j<=i;j++) 17 printf("%3d",a[j]); 18 printf("\n"); 19 } 20 return 0; 21 }
运行结果:
2.实现输出杨辉三角金字塔形式,代码如下:
1 #include<stdio.h> 2 int main() 3 { 4 int a[10][21]; 5 int i,j; 6 for(i=0;i<10;i++) 7 for(j=0;j<21;j++) 8 a[i][j]=0; 9 a[0][10]=1; 10 for(i=1;i<10;i++) 11 for(j=10-i;j<10+i+1;j++) 12 a[i][j]=a[i-1][j-1]+a[i-1][j+1]; 13 for(i=0;i<10;i++) 14 { 15 for(j=0;j<21;j++) 16 if(a[i][j]==0) 17 printf(" "); 18 else{ 19 if(a[i][j]<10) 20 { 21 printf("%2d",a[i][j]); 22 } 23 else if(a[i][j]<100) 24 { 25 printf("%2d",a[i][j]); 26 } 27 else{ 28 printf("%d",a[i][j]); 29 } 30 } 31 printf("\n"); 32 } 33 printf("\n"); 34 return 0; 35 }
运行结果: