猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一般,還不過癮,又多吃了乙個,第二天早上又將剩下的桃子吃掉一半,又多吃了乙個。以後每天早上都吃了前一天剩下的一半零乙個。到第10天早上想再吃時,見只剩下乙個桃子了。求第一天共摘了多少。
反向思考一下,從第十天開始,到第一天,每天吃桃子的個數是 ( num +1 )*2 其中num是後一天的 (num+1)*2,那麼迴圈天數,迴圈九次,因為一到十,只經過了九天,
可以得到
public class test
system.out.println(j);//1534
}
}
用while也可以做到
public class test
system.out.println(j);
}
}
還有一種思路是和題目思路一樣,需要用到遞迴,呼叫自身方法
每次(+1)*2 後返回這個值再(+1)*2
public class test
// 每一次返回的都是(+1)*2,向內巢狀,變數永遠是乙個n,直到n成為乙個定值
return (gettotal(n + 1) + 1) * 2;
} public static void main(string args)
}
演算法題 猴子吃桃 解
剛開始學c語言,在書上看見了道演算法題,嘗試解了下 題目 猴子第一天摘了若干個桃子,當即吃了一半,還不解饞,又多吃了乙個 第二天,吃剩下的桃子的一半,還不過癮,又多吃了乙個 以後每天都吃前一天剩下的一半多乙個,到第10天想再吃時,只剩下乙個桃子了。問第一天共摘了多少個桃子?思路 通過猴子第十天只剩乙...
java演算法 猴子吃桃問題
猴子吃桃問題 具體問題為 猴子第一天摘下n個桃子,當時就吃了一半,還不過癮,就又吃了乙個。第二天又將剩下的桃子吃掉一半,又多吃了乙個。以後每天都吃前一天剩下的一半零乙個。到第10天在想吃的時候就剩乙個桃子了,求第一天共摘下來多少個桃子?思路 距離現在的天數作為變數 f 1 1 f 2 f 3 f 3...
猴子吃桃問題
猴子吃桃問題 時間限制 3000 ms 記憶體限制 65535kb 難度 0 描述 有一堆桃子不知數目,猴子第一天吃掉一半,又多吃了乙個,第二天照此方法,吃掉剩下桃子的一半又多乙個,天天如此,到第 m天早上,猴子發現只剩乙隻桃子了,問這堆桃子原來有多少個?m 29 輸入 第一行有乙個整數 n,表示有...