Pytho菱形递归函数
时间: 2024-10-17 22:01:09 浏览: 31
Python中的菱形递归函数通常是指那种形式美观、结构类似于菱形的自相似序列生成算法,它通过递归的方式来构造这种特殊的模式。最常见的例子就是斐波那契数列的变种,例如“帕斯卡三角”(Pascal's Triangle),每一行都是前一行的元素之和,但是每个数的位置对应着特定的组合数。
```python
def pascal_triangle(n):
"""
使用菱形递归生成帕斯卡三角
:param n: 金字塔的高度
:return: 第n行的帕斯卡三角
"""
triangle = [[0 for _ in range(n)] for _ in range(n)]
def fill_row(row, col):
if row == 0 or col == 0 or col > row:
return 1
else:
triangle[row][col] = fill_row(row - 1, col - 1) + fill_row(row - 1, col)
return triangle[row][col]
# 遍历并填充每一行
for i in range(n):
fill_row(i, i)
return triangle
# 示例
print(pascal_triangle(5))
```
在这个函数中,`fill_row()` 函数实现了递归计算三角形中每个位置的值,而主函数则负责控制整个过程。菱形递归的概念体现在 `fill_row()` 对角线上的递归调用,形成了类似菱形的结构。
阅读全文