题目:输入n,(n不大于20),打印一个n层的杨辉三角。
分析思路:
杨辉三角特性:1.每一行的首项和尾项都为1;2.其他项的数值为上面一层的对应的列和上一层的对应列的前一列的和。例如:a[m][n] = a[m-1][n] +a[m-1][n-1];3.又因为是等腰的三角,所以每一行开始需要进行有规律的空格,规律为:总行数-当前行数。4杨辉三角是一个特殊的二维数组。5.每一行的元素不大于当前行数。
代码如下:
#include <stdio.h>
int main()
{
int n;
printf("你想输入几行杨辉三角呢?老铁\n");
scanf("%d",&n);
int a[20][20];
for(int i=0;i<n;i++)
{
for(int m=0;m<n-i;m++)
{
printf(" ");
}
for(int k=0;k<=i;k++)
{
if(k==0 || k==i)
a[i][k]=1;
else
{
a[i][k]=a[i-1][k]+a[i-1][k-1];
}
printf("%d ",a[i][k]);//输入当前行中每一列时的数字。
}
prinf("\n");//每一行输出完毕后,换行,进行下一行输入
}
return 0;
}