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