2、使用迭代和递归算法计算,猴子跳台阶的问题:有一只淘气的猴子一次可以跳1个台阶,也可以一次跳2个台阶,还以一次跳3个台阶,现有n个台阶,猴子从第1台阶跳到第n个台阶总共有多少种跳法。(分别使用迭代算法和递归算法分别实现) 源程序及运行结果:
时间: 2024-02-05 19:10:55 浏览: 113
求解这几个问题,几个递归算法中的问题,挺有意思的。
以下是使用迭代算法实现的代码:
```python
def monkey_jump_iter(n):
if n == 1:
return 1
elif n == 2:
return 2
elif n == 3:
return 4
else:
a, b, c = 1, 2, 4
for i in range(4, n+1):
temp = a + b + c
a, b, c = b, c, temp
return temp
```
以下是使用递归算法实现的代码:
```python
def monkey_jump_recur(n):
if n == 1:
return 1
elif n == 2:
return 2
elif n == 3:
return 4
else:
return monkey_jump_recur(n-1) + monkey_jump_recur(n-2) + monkey_jump_recur(n-3)
```
测试代码:
```python
n = 10
print("迭代算法结果:", monkey_jump_iter(n))
print("递归算法结果:", monkey_jump_recur(n))
```
输出结果:
```
迭代算法结果: 274
递归算法结果: 274
```
阅读全文