一、杨辉三角介绍
杨辉三角,是在三角形中的一种几何排列。它是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的结合。
上面是一个7行的杨辉三角,我们能发现它的规律有:
- 每一行的首、末位数都是1。
- 每一个数是它的左上方和右上方的数的和。如第5行的6就是它上面的两个数3和3的和。
- 每一行的数的个数和它对应的行数一致。如第7行有7个数。
二、设计思路
我们也要像上面一样,给定一个行数,打印它的分布情况。根据上面的规律:
- 我们需要定义一个二维数组,放置每一行的元素;
- 用两层循环把每一个值按照顺序存进数组,每一行的首、末元素单独赋值成1;
- 中间的元素就等于上一行下标相同的那个元素加上它前一个元素;比如第4行的第一个3的下标是
[3][1]
,那么它是下标为[2][0]
和[2][1]
两个元素的和。
三、代码实现
#include <stdio.h>
//杨辉三角
void Pascals_Triangle(int n)
{
int arr[n][n] = {0};
//为每一行赋值
for (int i = 0; i < n; i++)
{
//为每一行的元素赋值
for (int j = 0; j <= i; j++)
{
//初始化行首、行末的元素
if (j == 0 || j == i)
{
arr[i][j] = 1;
continue;
}
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
}
}
//打印
for (int i = 0; i < n; i++)
{
for (int j = 0; j <= i; j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
}
int main()
{
int input = 0;
scanf("%d",&input);
Pascals_Triangle();
return 0;
}
输出结果: