python假设⼀段楼梯共 15 个台阶,⼩明⼀步最多能上 3 个台阶。编写程序计算⼩明上这段楼 梯 ⼀共有多少种⽅法。要求给出递推法和递归法两种代码
时间: 2024-10-16 15:14:17 浏览: 45
Python走楼梯问题解决方法示例
在Python中,我们可以使用动态规划(Dynamic Programming)的思想来解决这个问题,采用递推法或递归法。这里我会分别展示这两种方法的代码:
**递推法(Top-Down Approach)**:
```python
def climb_stairs_recursion(n):
if n == 0 or n == 1:
return n
else:
# 假设前一步有a种方法,前两步有b种方法,那么n步就有a+b种方法
return climb_stairs_recursion(n - 1) + climb_stairs_recursion(n - 2)
# 初始值
climb_stairs = [0] * (16) # 因为0到15阶,所以数组长度为16
climb_stairs[0], climb_stairs[1] = 1, 2
for i in range(2, 16): # 从第三层开始
climb_stairs[i] = climb_stairs_recursion(i)
print("小明上15级台阶的总方法数是:", climb_stairs[15])
阅读全文