猴子跳台阶的问题:有一只淘气的猴子一次可以跳1个台阶,也可以一次跳2个台阶,还以一次跳3个台阶,现有n个台阶,猴子从第1台阶跳到第n个台阶总共有多少种跳法。(分别使用迭代算法和递归算法分别实现)
时间: 2024-02-03 19:15:08 浏览: 110
问题描述:有n级台阶,一个人每次上一级或者两级,问有多少种走完n级台阶的方法。
5星 · 资源好评率100%
迭代算法实现:
```python
def monkey_jump(n):
if n <= 2:
return n
a, b, c = 1, 2, 4
for i in range(4, n+1):
a, b, c = b, c, a+b+c
return c
```
递归算法实现:
```python
def monkey_jump(n):
if n <= 2:
return n
elif n == 3:
return 4
else:
return monkey_jump(n-1) + monkey_jump(n-2) + monkey_jump(n-3)
```
注意,递归算法可能会导致栈溢出,因此当 n 较大时应该使用迭代算法。
阅读全文