【程序17】題目:猴子吃桃問題:猴子第一天摘下若干個桃子,當(dāng)即吃了一半,還不癮,又多吃了一個 第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。程序分析:采取逆向思維的方法,從后往前推斷。
3 回答
已采納

漢江怪人
TA貢獻50條經(jīng)驗 獲得超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)); } }
輸出結(jié)果為1534 第一天共摘了1534個桃子

王大厲
TA貢獻58條經(jīng)驗 獲得超11個贊
public?static?void?main(String[]?args)?{ /* 正推*/ int?x;//第一天摘下的桃子 final?double?a=1.5; //穩(wěn)定下來每天的量 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
提交
取消