遞迴公式演算法解決猴子吃桃問題

2021-10-06 09:32:12 字數 602 閱讀 1186

1.方法又在方法中呼叫了自己

2.分類:

直接遞迴:自己的方法呼叫自己

間接遞迴:自己的方法呼叫別的方法,別的方法呼叫自己

3.遞迴的三要素:

遞迴的終結點(指的是完成遞迴演算法結束的條件)

遞迴的公式(利用自己的數學知識寫出遞迴的公式)

遞迴的方向:必須走向終結點

4.案例:猴子有若干個桃子,每天吃桃子總數的一半並且多乙個,等到第五天發現最後只剩下乙個桃子,問猴子原來一共有多少個桃子

分析:終結點:第五天之後只有乙個桃子說明結束條件為f(5)=1;

公式:前一天桃子數量為f(x)則第二天數量則為f(x+1),根據題意得出他們之間的關係為f(x+1)=f(x)-f(x)/2-1,整理可得f(x)=2f(x+1)+2,根據第五天桃子的數量遞迴求得第一天桃子的數量

則對應的**為

public

class

recursiondemo

public

static

intf

(int x)

else}}

執行結果為 46

若有錯誤,望批評指正,希望與大家一起**

遞迴演算法 猴子吃桃

題目 猴子第一天摘下若干個桃子,當即吃了一半,還不過癮就多吃了乙個。第二天早上又將剩下的桃子吃了一半,還是不過癮又多 吃了乙個。以後每天都吃前一天剩下的一半再加乙個。到第10天剛好剩乙個。問猴子第一天摘了多少個桃子?分析 這個題目體現了演算法思想中的遞迴和遞推思想,不過一般遞迴和遞推演算法是可以轉化...

猴子吃桃問題 php,趣味演算法 猴子吃桃問題

簡明現代魔法 c c 趣味演算法 猴子吃桃問題 趣味演算法 猴子吃桃問題 2010 05 26 猴子第一天摘下若干桃子,當即吃了一半,還不過癮,又多吃了乙個。第二天早上又將剩下的桃子吃掉一半,又多吃了乙個。以後每天早上都吃了前一天剩下的一半零乙個。到第10天早上想再吃時,見只剩下乙個桃子了。求第一天...

猴子吃桃的遞迴問題

程式如下 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...