黑马程序员技术交流社区
标题:
练习八:猴子吃桃问题
[打印本页]
作者:
maxwell247
时间:
2015-9-26 18:24
标题:
练习八:猴子吃桃问题
从网上找到一份编程练习题,我决定将里面的题目全都做一遍。
/*
题目:猴子吃桃问题。
猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 ?
*/
/*
分析:又看到了这个题目。充满了回忆啊。
假设桃子总数为A。
剩余桃子数
第1天 B=A-(A/2+1)
第2天 C=B-(B/2+1)
.... ....
.... ....
.... ....
第10天 1
--> 显然要从第10天开始倒退。
每天剩余的桃子数Y满足 Y=X-(X/2+1) (X为前一天的桃子数)
==> 所以 X=2(Y+1)
*/
class HouZiChiTao {
public static void main(String[] args) {
int y=1;
int x=0;
for (int i=9; i>=1; i--){ //从第9天开始倒推
x=2*(y+1);
y=x;
}
System.out.println("第一天共摘了"+x+"个桃子!");
}
}
/*
输出结果
第一天共摘了1534个桃子!
*/
/*------------------------------------------------*/
//这个例子是个典型的递归调用的例子,下面使用递归实现
class HouZiChiTao2{
public static void main(String[] args){
System.out.println(total(1));
}
//定义total方法,表示第day天桃子的总数
public static int total(int day){
if (day == 10){ //递归终止条件
return 1;
}else{
return (total(day+1)+1)*2;
}
}
}
作者:
乐闻
时间:
2015-9-26 18:30
加油 沙发
作者:
shadowlight
时间:
2015-9-26 18:30
点个赞,6666666666666
作者:
348480115
时间:
2015-9-26 18:31
小马哥来首黄家驹~~~~
作者:
桑葚之甜
时间:
2015-9-26 18:31
不懂。高大上的感觉
作者:
阿秋
时间:
2015-9-27 15:16
点赞1111111111!
作者:
cloud1991
时间:
2015-9-27 16:25
以前也看见过这道题
作者:
beyond1337
时间:
2015-9-27 16:46
看不懂怎么办啊??哭!
作者:
0814java1
时间:
2015-9-27 16:58
我也喜欢这样的题目
作者:
淡忘、悲年华
时间:
2015-9-27 16:59
猴子就爱吃桃
作者:
zzq18217362451
时间:
2015-9-27 19:45
楼主高手啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2