杨辉三角
#include<stdio.h>
int main(void)
{
int n, j, a[100][100];
int i;
while (scanf_s("%d", &n), n != 0)
{
for (i = 0; i < n; i++) //确定行数“n”;
{
for (j = 0; j <=i; j++)//确定每行有多少个数字;
{
if (j == 0 || i == j)//确定开头和结尾的数为1;
{
a[i][j] = 1;
}
else//核心语句;
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
}
}
for (i = 0; i < n; i++)
{
for (j = 0; j <= i; j++)
{
printf("%d", a[i][j]);
if (j != i)
printf(" ");
}
printf("\n");
}
printf("\n");
}
return 0;
}
- 核心说明:
- a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
- 除了开头和结尾,中间的数都是由上一行的上一个下表数和下一个下表数的和。