Python写杨辉三角
时间: 2024-07-06 21:01:16 浏览: 79
在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写的杨辉三角形代码:
```python
def pascal_triangle(n):
triangle = []
for i in range(n):
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
def print_triangle(triangle):
for row in triangle:
print(" ".join(str(x) for x in row))
n = int(input("请输入杨辉三角形的行数:"))
triangle = pascal_triangle(n)
print_triangle(triangle)
```
代码说明:
- `pascal_triangle` 函数用于生成杨辉三角形,接受一个整数参数 n 表示行数,返回一个二维列表,表示杨辉三角形。
- `print_triangle` 函数用于打印杨辉三角形,接受一个二维列表参数 triangle,将其打印出来。
- 主程序中,首先读取用户输入的行数 n,然后调用 pascal_triangle 函数生成杨辉三角形,最后调用 print_triangle 函数将其打印出来。
阅读全文