#include<stdio.h>
int main()
{
int n,i,j;
scanf("%d",&n);
int a[21][21]={0};
for(i=1;i<=n;i++)
{
a[i][1]=1;
a[i][i]=1;
}
for(i=1;i<=n;i++)
{
for(j=2;j<i;j++)
{
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++){
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}
解题关键:1.发现第i行中有i个数。
2.发现前一行的两个数与下一行的一个成和的关系。
复盘:以后尤其面对这种矩阵类的题目一定要从下标‘1’和‘i’赋值。(从最开始的赋值乃至最后的遍历输出均应该如此)
i<=j中间条件:也是杨辉三角的关键。
初始化时i为最后一个(别写成n!!!!!)
数组一定要定义为0不然一旦没覆盖到便会出现大量的垃圾数据。