文章目录
猴子吃桃问题
项目功能需求
有一只猴子第一天摘下了若干个桃子,当即吃掉了一半,觉得不过瘾又多吃了一个,第二天又将剩下的桃子吃掉了一半,还不过瘾有多吃了一个,按照这个说法,每天都吃掉前一天剩下的一半又多了一个,到了第十天,就剩下一个桃子,问,这只猴子第一天摘下了多少个桃子,用递归思想编程实现
知识点分析
(1)通过本实验可达到目标,熟悉递归思想以及求解简单的递归问题的算法步骤。
(2)掌握递归函数的定义,递归函数的调用,递归函数声明等基本概念。
(3)掌握函数的嵌套调用和递归调用。
算法思想
这个题目体现了算法思想中的递推思想,递归有两种形式,顺推和逆推,针对递推,只要
我们找到递推公式,问题就迎刃而解了。
令S10=1,容易看出 S9=2(S10+1), 简化一下
S9=2S10+2
S8=2S9+2
.....
Sn=2Sn+1+2
系统流程图
图1猴子吃桃的流程图
项目实现
运行效果图:
项目扩展
改变游戏的玩法,有一只猴子第一天摘下了若干个桃子,当即吃掉了一些桃子,剩下根号x个桃子,觉得不过瘾又多吃了一个,第二天又将剩下的桃子吃掉了一些,剩下根