【程序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
提交
取消
