猴子吃桃问题。
2018-03-29 21:02
127 查看
22. 猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第二天又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半另加一个。
到第10天早上想再吃时,就只剩一个桃子了。 求第1天共摘了多少个桃子。
分析:递归解题思路:从已知事实出发,求未知结果。
该题中,已知事实为:第10天共有1个桃子。
未知结果为:第1天共摘了多少桃子?
那么:找出 已知事实 和 未知结果 之间的关系:
由第10天没吃前共有1个桃子,可得出第9天 没吃前 共有几个桃子?找出他们之间的关系。
设第10天没吃前共有n10个桃子,第9天没吃前共有n9个桃子:
由题意得:第9天吃了 (n9/2+1)
第9天剩了n9-(n9/2+1) 第9天剩的 就等于 第10天没吃前的桃子
得:n9-(n9/2+1) =n10
整理得:n9=2*n10+2 这个公式很重要很关键,它是递归时主要用到的。
由这个公式,推出:n8=2*n9+2 n7=2*n8+2
想求n1->就得求n2,想求n2,就得求n3..........总结:想求n1,最终就得靠n10求出
(n1表示第1天没吃前的桃子个数)
代码如下:
while循环:
for循环:
第二天又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半另加一个。
到第10天早上想再吃时,就只剩一个桃子了。 求第1天共摘了多少个桃子。
分析:递归解题思路:从已知事实出发,求未知结果。
该题中,已知事实为:第10天共有1个桃子。
未知结果为:第1天共摘了多少桃子?
那么:找出 已知事实 和 未知结果 之间的关系:
由第10天没吃前共有1个桃子,可得出第9天 没吃前 共有几个桃子?找出他们之间的关系。
设第10天没吃前共有n10个桃子,第9天没吃前共有n9个桃子:
由题意得:第9天吃了 (n9/2+1)
第9天剩了n9-(n9/2+1) 第9天剩的 就等于 第10天没吃前的桃子
得:n9-(n9/2+1) =n10
整理得:n9=2*n10+2 这个公式很重要很关键,它是递归时主要用到的。
由这个公式,推出:n8=2*n9+2 n7=2*n8+2
想求n1->就得求n2,想求n2,就得求n3..........总结:想求n1,最终就得靠n10求出
(n1表示第1天没吃前的桃子个数)
代码如下:
while循环:
for循环:
相关文章推荐
- 递归——实现猴子选大王的问题
- 猴子搭砖问题
- (Javascript) 猴子也明白 之 闭包超级入门 1 问题
- 一些项目——猴子吃桃问题
- 猴子挖花生问题
- 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个
- 循环链表的应用--猴子出队问题
- 经典的猴子吃桃问题,C语言算法,根据天数和当日桃子个数,求第一天猴子所摘桃的个数,
- 题目:猴子吃桃问题
- C语言实现猴子选大王(约瑟夫问题)
- 循环-16. 猴子吃桃问题(15)
- 【C语言】猴子吃桃问题
- 猴子摘桃问题
- 猴子选大王问题
- 【C语言】猴子吃桃子问题
- 5个猴子摘桃子的问题程序实现
- 2017/11/29猴子吃桃问题
- NYOJ324 猴子吃桃问题
- 猴子吃桃子的问题
- 解决猴子选大王问题(用C,原创)