关于杨辉三角中的一点不懂

来源:百度知道 编辑:UC知道 时间:2024/05/26 15:36:25
#include<stdio.h>
void main()
{
int i,j,k;
int a[10][10];
for(i=0;i<10;i++)
{
a[i][0]=1;
a[i][i]=1;
}
for(i=2;i<10;i++)
{
for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
for(i=0;i<10;i++)
{
for(k=10-i;k>0;k--) /*其中这点和下两行不清楚为什么要这么输*/
{
printf(" ");} /*为什么要输入printf(" ");*/
for(j=0;j<=i;j++)
{
printf(" %3d",a[i][j]);
}
printf("\n");
}

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1

看上面这个三角,输printf("");是输出每行第一个1前面的空格
for(k=10-i;k>0;k--)随着i的增加1,每行1前面的空格减少一个
/*
for(j=0;j<=i;j++)
{
printf(" %3d",a[i][j]);
} */
上面那段你应该知道吧,一行一行地输入,每行末尾有"\n";

for(k=10-i;k>0;k--) /*其中这点和下两行不清楚为什么要这么输*/
{
printf(" ");
} /*为什么要输入printf(" ");*/
刚好是为了形成杨辉三角的三角形状啊,如下面的空格:
"" "" "" "" "" 1
"" "" "" "" ""1 1
1 2 1
1 3 3 1
1 4 6 4 1
.......................
...........................