大致思路:
本題可以用遞迴和while迴圈寫,並且,遞迴會在pta上超時,
但是我認為遞迴的思路還是很好的,但是我遇到了一點彎兒。那就是digui(1)和digui(n)究竟誰代表第一天的桃子個數。這裡呢,我取的是反向,也就是說,digui(n)代表第一天的桃子數。digui(1)代表的是第n天的桃子數,也就是遞迴的終點:桃子數為1.
我們知道,遞迴是要又終點和遞迴條件的,我們找到了終點,就應該寫出遞迴的關係,怎麼想的呢,就是把這個函式的返回值的值用下一項或者上一項表示(其實本質是引數的值更加接近於遞迴終點的那一項),把這個關係表達出來,就會一目了然。
下面是while演算法:
#include
intmain()
while
(i;printf
("%d"
, x)
;return0;
}
猴子吃桃問題的思路整理
猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了乙個 第二天早上又將剩下的桃子吃掉一半,又多吃了乙個。以後每天早上都吃前一天剩下的一半零乙個,到第10天早上想再吃時,見只剩下乙個桃子了。求第一天共摘多少個桃子?答案為 1534個。package algorithm public class...
猴子吃桃的問題
面試時被這個題懵了 猴子第一天摘下若干個桃子,當機吃了一半,還不過癮又吃了乙個,以後每天早上吃前天剩下的一半零乙個,第十天早上想吃發現就剩乙個,求第一天共摘了幾個.其實很簡單,從第十天開始觀察,第十天只剩下1個,那麼第九天沒開始吃的時候有2 1 1 個 因為每天要吃當前數量的一半 乙個,所以第十天剩...
猴子吃桃的遞迴問題
程式如下 include int total int k if k 10 total n 1 else total n total k 1 1 2 return total n int main int total total total 1 printf 猴子總共桃子數 d n total ret...