算法设计与分析杨辉三角一题多解
时间: 2023-12-20 21:31:44 浏览: 55
以下是关于算法设计与分析杨辉三角的多种解法:
1. 使用列表存储每一行的值,利用上一行的值计算当前行的值,然后将每一行的列表打印出来。
```python
def generate_pascals_triangle(numRows):
triangle = []
for row_num in range(numRows):
row = [None for _ in range(row_num + 1)]
row[0], row[-1] = 1, 1
for j in range(1, len(row) - 1):
row[j] = triangle[row_num - 1][j - 1] + triangle[row_num - 1][j]
triangle.append(row)
return triangle
def print_pascals_triangle(triangle):
for row in triangle:
print(row)
numRows = 5
triangle = generate_pascals_triangle(numRows)
print_pascals_triangle(triangle)
```
2. 使用生成器函数生成每一行的值,然后打印出整个杨辉三角。
```python
def generate_pascals_triangle(numRows):
result = []
for i in range(numRows):
row = [1] * (i + 1)
for j in range(1, i):
row[j] = result[i - 1][j - 1] + result[i - 1][j]
result.append(row)
return result
def print_pascals_triangle(triangle):
for row in triangle:
print(row)
numRows = 5
triangle = generate_pascals_triangle(numRows)
print_pascals_triangle(triangle)
```
3. 使用递归函数计算每一行的值,然后打印出整个杨辉三角。
```python
def generate_pascals_triangle(numRows):
if numRows == 0:
return []
elif numRows == 1:
return [[1]]
else:
result = generate_pascals_triangle(numRows - 1)
last_row = result[-1]
new_row = [1] + [last_row[i] + last_row[i + 1] for i in range(len(last_row) - 1)] + [1]
result.append(new_row)
return result
def print_pascals_triangle(triangle):
for row in triangle:
print(row)
numRows = 5
triangle = generate_pascals_triangle(numRows)
print_pascals_triangle(triangle)
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)