打印杨辉三角
#include <stdio.h>
int main()
{
int i,j,a[10][10];
for(i=0;i<10;i++)
{
a[i][i]=1;
a[i][0]=1;
}
for(i=2;i<10;i++)
for(j=1;j<=i-1;j++)
a[i][j]=a[i-1][j]+a[i-1][j-1];
for(i=0;i<10;i++)
{
for(j=0;j<20 - 2*i;j++)
printf(" "); /*控制输出第i行前面的空格*/
for(j=0;j<=i;j++)
printf("%4d",a[i][j]);
printf("\n");
}
}
或者:
#include<stdio.h>
int c(int x,int y);
int main()
{
int i,j,n=10;
for(i=0;i<n;i++) /*控制输出N行*/
{
for(j=0;j<20 - 2*i;j++) printf(" "); /*控制输出第i行前面的空格*/
for(j=1;j<i+2;j++) printf("%4d",c(i,j)); /*输出第i行的第j个值*/
printf("\n");
}
return 0;
}
int c(int x,int y) /*求杨辉三角形中第x行第y列的值*/
{
int z;
if((y==1)||(y==x+1)) return 1; /*若为x行的第1或第x+1列,则输出1*/
z=c(x-1,y-1)+c(x-1,y); /*否则,其值为前一行中第y-1列与第y列值之和*/
return z;
}