C语言中,杨辉三角是一种常见的数学图形,它是在中国古代,杨辉发明并深入研究的一种二项式数列。在计算机编程中,我们可以用不同的算法来实现杨辉三角。本文将主要介绍两种C语言实现杨辉三角的方法。
方法一:使用二维数组
首先,我们可以使用二维数组来存储杨辉三角的值。杨辉三角有以下的性质:
- 任意一行的第一位和最后一位都是1;
- 从第三行开始,中间的数等于上一行的相邻两个数之和。
根据这个性质,我们可以利用二维数组存储杨辉三角的值,代码如下:
#include <stdio.h>
#define N 10
int main()
{
int triangle[N][N];
int i, j;
for (i = 0; i < N; i++) {
triangle[i][0] = 1; //每行第一列为1
triangle[i][i] = 1; //每行最后一列为1
for (j = 1; j < i; j++) {
triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j];
}
}
for (i = 0; i < N; i++) {
for (j = 0; j <= i; j++) {
printf("%d ", triangle[i][j]);
}
printf("\n");
}
return 0;
}
这里定义了一个triangle
二维数组,用来存储杨辉三角的值。在循环计算每行的值时,我们分别对每行的第一列和最后一列赋值为1,然后通过递推公式计算中间的数值。最后,我们遍历整个数组并输出每一个数值。
下面是输出的结果:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
方法二:使用一维数组
我们也可以使用一维数组来存储杨辉三角的值,这种方法可以减少内存的使用,并且不需要进行二维数组的定义和初始化。代码如下:
#include <stdio.h>
#define N 10
int main()
{
int triangle[N];
int i, j;
//初始化数组
for (i = 0; i < N; i++) {
triangle[i] = 1;
}
//输出第一行
printf("1\n");
//循环计算杨辉三角的每一行
for (i = 1; i < N; i++) {
for (j = i; j >= 1; j--) {
triangle[j] += triangle[j-1];
}
for (j = 0; j <= i; j++) {
printf("%d ", triangle[j]);
}
printf("\n");
}
return 0;
}
这里定义了一个triangle
一维数组,用来存储杨辉三角的当前行的数值。在循环计算每行的值时,我们从后向前遍历数组,依次更新每一个数值。然后,我们输出这一行的结果即可。需要注意的是,我们需要先输出第一行的1,因为后面的计算需要用到这个初始值。
下面是输出的结果:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
在实际项目中,我们可以根据实际需要选择适合的方法来实现杨辉三角。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言杨辉三角两种实现方法 - Python技术站