【程序17】题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。程序分析:采取逆向思维的方法,从后往前推断。
3 回答
已采纳
汉江怪人
TA贡献50条经验 获得超11个赞
public class Monkey { static int jisuan(int day){ if(day==1) return 1; else return (jisuan(day-1)+1)*2; } public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(jisuan(10)); } }
输出结果为1534 第一天共摘了1534个桃子
王大厉
TA贡献58条经验 获得超11个赞
public static void main(String[] args) { /* 正推*/ int x;//第一天摘下的桃子 final double a=1.5; //稳定下来每天的量 for(double i=1;;i++){ if((i*1.0/2+1)+((i-(i*1.0/2+1))/2+1)+7*1.5+1==i){//判断这10天吃的桃子量是否等于第一天摘下来的桃子总和 x=(int)i; System.out.println(i); break; } } System.out.println("总共摘了:"+x+"个桃子"); //反推 double m=1+1.5+1.5+1.5+1.5+1.5+1.5+1.5;//10-3天的桃子 System.out.println("第二天余量:"+m); double n=(m+1)*2; System.out.println("第一天余量:"+n); double k=(n+1)*2; System.out.println("第一天摘下的桃子总和:"+k); }
添加回答
举报
0/150
提交
取消