猴子吃桃子问题
来源:互联网 发布:李勇seo 编辑:程序博客网 时间:2024/04/28 06:56
猴子吃桃子问题
题目
猴子吃一堆桃子,不知道总共有多少个桃子,第一天吃了总数的一半,不过瘾,又吃了三个。后来决定奇数天吃剩下桃子的一半加3个,偶数天吃剩下桃子的一半加1个。到最后一天的时候,只剩下了一个桃子。如果给定天数,能不能算出来总共的桃子数?
分析
1,如果最后一天剩下一个桃子,则可以往回倒推。
2,如果最后一天是偶数天,则前一天是奇数天,还有8个桃子(吃掉一半(4个),再吃3个,刚好剩下1个);设前一天有X个,则有,x=x/2+3+1; 所以 x=(1+3)*2。
3,如果最后一天是奇数天,则前一天是偶数天,还有4个桃子(吃掉一半(2个),再吃1个,刚好还剩1个);设前一天有X个,则有,x=x/2+1+1; 所以 x=(1+1)*2。
解
public int cal(int days){ int sum=1;//最后一天剩下的桃子数为1 for(int i=days-1;i>0;i--){//从倒数第二天开始 if(i%2==1){//奇数天 sum=(sum+3)*2; }else{//偶数天 sum=(sum+1)*2; } } return sum;}
小结
1,逆向思维方式,因为有吃一半桃子的存在,所以前一天剩余的桃子数一定是偶数,则可以从2开始试验。因为最后一天只剩下一个桃子,所以前一天是很快可以试出来的。则可以总结出来规律。
2,想很容易想出来,但是总结规律,一定要写出来,才可以更快的总结出来。
0 0
- 猴子吃桃子问题
- 猴子吃桃子问题
- 猴子吃桃子问题
- 猴子吃桃子问题
- 猴子吃桃子问题
- 猴子吃桃子问题
- 猴子吃桃子问题
- 猴子吃桃子问题
- 猴子吃桃子问题
- 猴子吃桃子的问题
- 猴子吃桃子问题(C语言)
- 【C语言】猴子吃桃子问题
- 猴子吃桃子
- 猴子吃桃子
- 猴子吃桃子
- 【C语言小练习】猴子吃桃子的问题
- 猴子吃桃子问题 -- 递推算法(倒推)
- 常见试题:用递归实现猴子吃桃子问题
- 移动APP创业前期调研是关键
- dubbo调用 RPC异常 IllegalStateException异常 解决方案
- HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
- 封装
- Oracle插入表中不存在的记录
- 猴子吃桃子问题
- 移动APP项目实施案例分析及调优
- redis安装步骤
- 转帖:Linq和Lamda的对比总结
- 内核2.6.36版本kfifo代码修改分析
- C. The Smallest String Concatenation-C++sort排序~~
- MySQL数据库binlog日志管理
- Android Activity生命周期与启动模式
- Android Studio 出现 error: cannot find symbol variable abc_ic_ab_back_mtrl_am_alpha