利用二维数组做杨辉三角
时间: 2025-01-06 17:49:01 浏览: 3
杨辉三角是一个数学术语,它是一种特殊的二项式系数表格,用于表示二项展开式的系数。这个三角形通常以递归的方式构建,每个数字等于其上方两个数字之和,除了第一行和第一列的数字,它们都是1。
利用二维数组来表示杨辉三角,我们可以初始化一个n行n列的数组,其中n是要生成的杨辉三角的行数。对于数组中的每一个元素,它的值可以通过以下公式计算:
- 如果位置是(i, j),并且i > 0且j > 0,则该元素的值是(array[i - 1][j] + array[i - 1][j - 1])。
下面是一个简单的Python示例,展示如何使用二维数组生成前几行的杨辉三角:
```python
def generate_pascal_triangle(n):
triangle = [[1 for _ in range(j+1)] for j in range(n)]
for i in range(2, n):
for j in range(1, i):
triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j]
return triangle
# 输出前5行的杨辉三角
for row in generate_pascal_triangle(5):
print(row)
```
相关问题
利用二维数组做杨辉三角C语言
在C语言中,利用二维数组来表示杨辉三角是一种常见的编程技巧。杨辉三角是一个数学术术图形,每个数字是它上方两个数字相加得到的结果,通常用于排列组合的计算。下面是一个简单的示例,展示如何创建和填充二维数组来存储杨辉三角:
```c
#include <stdio.h>
#define ROWS 5 // 杨辉三角的行数
// 创建二维数组
int yuahi_triangle[ROWS][ROWS];
void print_yuahi_triangle() {
for (int i = 0; i <= ROWS - 1; i++) {
for (int j = 0; j <= i; j++) {
printf("%d ", yuahi_triangle[i][j]);
}
printf("\n");
}
}
int main() {
// 初始化第一行和第二行
yuahi_triangle[0][0] = 1;
if (ROWS >= 2) {
yuahi_triangle[1][0] = yuahi_triangle[1][1] = 1;
}
// 动态填充剩余的元素
for (int row = 2; row < ROWS; row++) {
for (int col = 1; col < row; col++) {
yuahi_triangle[row][col] = yuahi_triangle[row - 1][col - 1] + yuahi_triangle[row - 1][col];
}
}
// 打印杨辉三角
print_yuahi_triangle();
return 0;
}
```
在这个例子中,我们首先初始化了前两行,然后通过嵌套循环根据杨辉三角的规则动态计算并填充其余的元素。最后,`print_yuahi_triangle`函数会被调用来显示整个杨辉三角。
利用二维数组输出杨辉三角
下面是利用二维数组输出杨辉三角的 Python 代码:
```python
n = int(input("请输入要输出的杨辉三角的行数:"))
# 创建二维数组
triangle = [[0] * n for i in range(n)]
# 初始化三角形左侧和顶部的数值为1
for i in range(n):
triangle[i][0] = 1
triangle[i][i] = 1
# 递推计算杨辉三角中的数值
for i in range(2, n):
for j in range(1, i):
triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]
# 输出杨辉三角
for i in range(n):
for j in range(i+1):
print(triangle[i][j], end=" ")
print()
```
运行代码,输入行数,即可输出相应行数的杨辉三角。
阅读全文