首先定义一个二维数组用来存储三角形所得出的结果。
//箭头所指的大括号中没有值,那么这个二维数组中存的是0。
杨辉三角形的所有行的第一列全部都是1,其斜对角线也全都是1。先将这个大体的轮廓写出来,在一步一步的进行完善。
轮廓写出来之后进行细节的完善。仔细观察不难发现第三行的第二列是第二行第一列和第二列之和;第四行的第二列是第三行第一列和第二列之和;第四行的第三列是第三行第二列和第三列之和……以此类推下去得到规律。因为第一行和第二行都是1,所有行的第一列也都是1,所以我们不用管第一、二行和第一列。从第三行开始进行和运算。
最后只需要将二维数组呈下三角的方式遍历出来即可。
完整程序如下图:
源代码如下,需要自行粘贴复制。
#include<stdio.h>
int main(int argc, char const *argv[])
{
int a[10][10] = {};
for (int i = 0; i < 10; i++)
for (int j = 0; j < i+1; j++)
{
a[i][0] = 1;
a[i][i] = 1;
}
for(int i = 2; i < 10; 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<10;i++)
{
for(int j=0;j<i+1;j++)
{
printf("%d\t",a[i][j]);
}
puts("");
}
return 0;
}
感谢阅读!!!