杨辉三角是我们从初中就知道的,现在,让我们用C语言将它在计算机上显示出来。
在初中,我们就知道,杨辉三角的两个腰边的数都是 1,其它位置的数都是上顶上两个数之和。这就是我们用C语言写杨辉三角的关键之一。
在高中的时候我们又知道,杨辉三角的任意一行都是的二项式系数,n 为行数减 1。也就是说任何一个数等于这个是高中的组合数。n 代表行数减 1,不代表列数减 1。如:第五行的第三个数就为 =6。
好了,原理都说清楚了,直接上图:
由上图观察可知,第一列 和 行列值相同的元素的值都是 1 那么就可以先判断值为 1 的数,然后再写其他的值。
int a[8][8] = {0}; //打印8行8列的杨辉三角
int i,j;
int main()
{
for(i = 0; i < 8; i++)
{
for(j = 0; j <= i; j++) //因为要打印等腰三角形的形式,第一行输出一个,第二行输出两个 ... 第八行输出八个
{
if(0 == j || i == j) //判断第一列和行列值相同的元素
{
a[i][j] = 1; //将第一列和行列值相同的元素赋值为 1
}
else
{
a[i][j] = a[i - 1][j - 1] + a[i - 1][j]; // 其它位置的数都是上顶上两个数之和
}
}
}
for(i = 0; i < 8; i++)
{
for(j = 0; j <= i; j++)
{
printf("%-3d",a[i][j]);
}
printf("\n"); \\ 每隔一行换一次行
}
return 0;
}
运行结果:
以上就是我理解的杨辉三角,有错误欢迎指出!