打印对称杨辉三角:如
思想:杨辉三角是从第三行开始,上两个左右角上数的加和。故可以采用二维数组进行记录,赋值。
代码
#include <stdio.h>
int main()
{
int n;
int a[100][100];
while(scanf("%d",&n)!=EOF) //可以循环输出
{ int i,j;
for(i=1;i<=n;i++) //每行第一个数和最后一个数字都是1
a[i][1]=a[i][i]=1;
for(i=3;i<=n;i++) //row
{
for(j=2;j<=i-1;j++) //要小于i-1是因为最后一个数字1已经确定,这一行长度要少一个
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
//以上完成杨辉三角但是不是对称的,以下是进行调整
for(i=1;i<=n;i++) //调整格式
{
for(int k=1;k<=n-i;k++)
printf(" ");
for(j=1;j<=i;j++)
printf("%4d",a[i][j]);
printf("\n");//一行结束换行
}
}
return 0;
}