杨辉三角——C语言实现
杨辉三角:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
…
由上述举例可知
- 每行第一位数和最后一位数都为1;
- 其余的数为正上方和左边数之和;
因此,根据已知规律,可以写出如下解决方案:
#include <stdio.h>
//杨辉三角
int main()
{
int n;
printf("请输入要打印的行数:");
scanf("%d",&n);
int a[100][100];
for(int i=0;i<n;i++)
{
a[i][0]=1;
a[i][i]=1; //先将杨辉三角每行的第一个和最后一个赋值为1
}
for(int i=2;i<n;i++) //已知每个数等于它上方两数的之和
{
for(int j=1;j<i;j++)
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
for(int i=0;i<n;i++) //打印输出
{
for(int j=0;j<=i;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
}