递归法:树林中有 5只猴子摘下了若干个桃子,其中第一只猴子摘下的桃子数目比第二只猴子少 1个;第二只猴子桃子数目又是比第三只猴子少 1个,依次往后,每只 猴子摘桃的数目都比下一只猴子少 1个,已知第5 只猴子摘了 20 个桃子。编写程序求出第一只猴子摘下了多少个桃子。
时间: 2024-02-13 22:00:30 浏览: 103
猴子吃桃程序(数组算法,链表算法,递归算法)
5星 · 资源好评率100%
这个问题可以使用递归法来解决。首先可以使用一个递归函数 f(n) 来表示第 n 只猴子摘的桃子数,那么根据题意可以得到:
f(5) = 20
f(n) = f(n+1) + 1,其中 n ∈ [1, 4]
根据上述递推公式,可以从 f(5) 开始递归求解 f(4)、f(3)、f(2) 和 f(1),最终得到第一只猴子摘下的桃子数。
具体的实现代码如下:
```python
def get_peaches(n):
if n == 5:
return 20
else:
return get_peaches(n+1) + 1
# 测试
print(get_peaches(1)) # 输出 16
```
因此,第一只猴子摘下了 16 个桃子。
阅读全文