<1>题目描述
输出以下的杨辉三角形(要求输出10行)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
. . . . . .
. . . . . .
<2>思路分析
- 观察第一列和大矩形对角线上的数字都是1,我们可以将相应位置的元素置为1
- 除开上面分析的数字,其他数字都是上面左边的第一个数字加上上面的数字和的结果(2=1+1、3=1+2、3= 2+1、4= 1+3、6= 2+3... )
<3>代码实现
int main()
{
int i, j;
int a[10][10] = {0};
for (i = 0; i < 10; i++)
{
for (j = 0; j <= i; j++) //只算大矩形对角线及左下边的数字
{
if (j == 0 || i == j) //让第一列和对角线上的数字等于1
{
a[i][j] = 1;
printf("%-4d", a[i][j]);
}
else
{
a[i][j] = a[i - 1][j - 1] + a[i - 1][j]; //输出对角线和第一列以外的数字
printf("%-4d",a[i][j]);
}
}
putchar('\n');
}
return 0;
}
<4>结果展示