杨辉三角高效率版本,只用两次循环
比较简单,直接上代码
#include<stdio.h>
int main()
{
int a[100][100]= {0},n;//定义空的二维数组和一个n
scanf("%d",&n);//输入一个值,代表输出几行的杨辉三角
for(int i=0; i<n; i++)//一层循环,次数为行数
{
a[i][0]=1;//把每一行的第零个赋值为1
for(int j=0; j<=i; j++)//列数,(可以看出杨辉三角为第一行
//一个元素,第二行两个元素,第n行n个元素)
{
if(j>=1)//判断从第二列开始,把这个元素的上一行元素和
//上一行元素的前一个元素相加赋值给这个元素
{
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
printf("%d ",a[i][j]);//在二层循环里直接输出对应相加好的元素
}
printf("\n");//每输出一行写一个换行
}
return 0;
}