Python写杨辉三角
时间: 2024-07-06 11:01:16 浏览: 96
在Python中,杨辉三角是一个经典的数学问题,可以用递归或者动态规划的方式来实现。这里我们介绍一种常见的动态规划方法来生成杨辉三角:
```python
def pascal_triangle(n):
triangle = [[1]*(i+1) for i 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
# 生成前n行的杨辉三角
n_rows = 5
pyramid = pascal_triangle(n_rows)
for row in pyramid:
print(row)
相关问题
python 写杨辉三角
可以使用循环来实现杨辉三角,以下是一个示例代码:
```python
def generate_triangle(num_rows):
triangle = []
for i in range(num_rows):
row = [1] * (i + 1)
for j in range(1, i):
row[j] = triangle[i - 1][j - 1] + triangle[i - 1][j]
triangle.append(row)
return triangle
# 测试代码
triangle = generate_triangle(5)
for row in triangle:
print(row)
```
输出结果:
```
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
```
以上代码中,`generate_triangle` 函数接受一个参数 `num_rows`,表示要生成的杨辉三角的行数。函数使用一个二维列表 `triangle` 来存储杨辉三角的每一行,然后在循环中依次生成每一行,并将其添加到 `triangle` 列表中。在生成每一行时,先初始化为全 1 的列表 `row`,然后使用循环计算出 `row` 中除了第一个和最后一个元素之外的其他元素。每一行生成完后,将其添加到 `triangle` 列表中,最后返回 `triangle` 列表。
用python写杨辉三角
好的,下面是用 Python 实现杨辉三角的代码:
```
def pascal_triangle(n: int) -> list[list[int]]:
result = []
for i in range(n):
if i == 0:
result.append([1])
else:
result.append([1])
for j in range(i - 1):
result[i].append(result[i-1][j] + result[i-1][j+1])
result[i].append(1)
return result
print(pascal_triangle(5))
```
这段代码会输出前五行的杨辉三角,输出结果为:
```
[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]
```
其中,第 `i` 行第 `j` 列的数字表示为 `result[i][j]`。
杨辉三角的每一行的第一个数和最后一个数都是1,其他的数都是上一行的相邻两个数之和。我们可以根据这个规则来构造杨辉三角。
阅读全文