用遞迴和迴圈解題 猴子吃桃

2021-10-01 05:55:44 字數 1122 閱讀 5948

問題:

猴子第一天摘下數個桃子,當即吃了一半,又多吃了乙個,第二天早上又將剩下的桃子吃掉一半,又多吃了乙個。以後每天早上都吃了前一天剩下的一半零乙個。到第10天早上只剩下乙個桃子。求第一天摘了多少桃子.

邏輯

第九天吃掉了一半,又吃掉1個,到第十天還剩下1個.

所以第九天桃子數為:(1+1)*2;

而第八天為(((1+1)*2)+1)*2

…所以:

int day = 1;

int peath=0;//桃子數

迴圈9次

遞迴:最初為未知數x,吃了9天,最後一天剩下乙個,即函式出口確定,day==1時,返回桃子數 1;而計算如上面 ruturn (函式(day+1)+1)*2;

**

int peach=1;

int day=

10for

(int i =day; i >

1; i--

) system.out.

println

(peach)

;

遞迴版:

public

static

intpeachnum

(int day)

至尊定製版:

指定第幾天剩下1個桃子.計算第一天找桃子數

因為遞迴時,不想讓其一直執行輸入,且遞迴出口的判斷數不能一直"重新整理",所以

在類內設定了乙個屬性,定義了建構函式.

若還沒有學到建構函式,可以把注釋的註解掉,其他的都刪除

public

class

eatpeach

public

static

void

main

(string[

] args)

// system.out.println(peach);

}public

static

intpeachnum

(int day)

}

遞迴演算法 猴子吃桃

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

猴子吃桃 迴圈題解

猴子吃桃問題 猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了乙個。第二天早上又將剩下的桃子吃掉一半,又多吃了乙個。以後每天早上都吃了前一天剩下的一半多乙個。到第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...