经典算法题03-猴子吃桃
来源:互联网 发布:linux修改用户组 编辑:程序博客网 时间:2024/05/27 09:46
问题描述:
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾就多吃了一个。第二天早上又将剩下的桃子吃了一半,还是不过瘾又多吃了一个。以后每天都吃前一天剩下的一半再加一个。到第10天刚好剩一个。问猴子第一天摘了多少个桃子?
分析:
这是一套非常经典的算法题,这个题目体现了算法思想中的递推思想,递归有两种形式,顺推和逆推,针对递推,只要
我们找到递推公式,问题就迎刃而解了。 令S10=1,容易看出 S9=2(S10+1), 简化一下 S9=2S10+2 S8=2S9+2 ..... Sn=2Sn+1+2
遥想公瑾当年,老师说递归是最简洁,最容易理解的,好,就用递归试一下:
public static void main(String[] args) throws IOException { int sum = a(1); int s = b(1, 1); System.out.println("sum:" + sum); System.out.println("s:" + s); } private static int b(int i, int j) { if (i == 10) { return j; } return b(i + 1, 2 * j + 2); } public static int a(int day) { if (day == 10) { return 1; } return 2 * a(day + 1) + 2; }
这样就用顺序递归和尾递归完成了计算。
0 0
- 经典算法题03-猴子吃桃
- 经典算法题——第三题 猴子吃桃
- java经典算法题——猴子吃桃
- 猴子吃桃(经典算法问题)
- 算法题-猴子吃桃
- [算法]猴子吃桃
- 猴子吃桃算法
- 猴子吃桃算法
- 《JAVA常用算法手册》 算法经典题 4.猴子吃桃
- 猴子吃桃-经典问题
- java经典算法_016猴子吃桃问题(递归)
- Java经典算法——猴子吃桃
- 经典算法题每日演练——第三题 猴子吃桃
- 经典算法题每日演练——第三题 猴子吃桃
- 经典算法题每日演练——第三题 猴子吃桃
- 经典算法题每日演练——第三题 猴子吃桃
- 算法三 猴子吃桃
- 第三题 猴子吃桃
- 222. Count Complete Tree Nodes
- [Java]ArrayList与LinkedList的模拟实现
- squirrel-sql通过phoenix-4.7.0连接windows中的hbase-1.1.3(一)
- flume 用户指南 - part 1
- Python3 函数
- 经典算法题03-猴子吃桃
- mybatis动态sql的书写
- 了解Context
- Android MVP 设计模式
- 动态规划13之1018
- poj 3666 Making the Grade
- exec函数
- EventBus要点解析
- scrapy框架学习二-如何在eclips中配置scrapy开发环境