实验八 小明爬楼梯 实验目的 1、理解并熟练使用序列解包。 2、理解递归函数工作原理。 3、能够编写递归函数代码解决实际问题。 4、理解Python字典的用法。 实验内容 假设一段楼梯共15个台阶,小明一步最多能上3个台阶。编写程序计算小明上这段楼梯一共有多少种方法。要求给出递推法和递归法两种代码
时间: 2024-02-24 07:59:13 浏览: 226
好的,以下是递归法和递推法的代码实现:
递归法:
```
def climb_stairs(n):
if n == 0 or n == 1:
return 1
elif n == 2:
return 2
else:
return climb_stairs(n-1) + climb_stairs(n-2) + climb_stairs(n-3)
print(climb_stairs(15))
```
递推法:
```
def climb_stairs(n):
if n == 0 or n == 1:
return 1
elif n == 2:
return 2
else:
s1, s2, s3 = 1, 1, 2
for i in range(3, n+1):
s1, s2, s3 = s2, s3, s1+s2+s3
return s3
print(climb_stairs(15))
```
这两种方法都能够求解小明爬楼梯的问题,其中递推法的效率更高,因为递归法会重复计算很多子问题,导致时间复杂度较高。
阅读全文