猴子吃桃的遞迴問題

2021-07-03 09:55:39 字數 573 閱讀 6882

程式如下:

#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);

return 0;

遞迴的本質就是函式自己呼叫自己,但是這和乙個函式呼叫其他的函式沒有本質區別,上面的猴子吃桃的問題就是 total 函式相當於呼叫了10個子函式(也就是相當於下面有10個子函式),在最後乙個子函式,也就是k=10的時候,total_n=1 然後依次把值返回給上一層函式,這樣依次返回,知道返回主函式裡面的 total(1) ,其實遞迴沒什麼的,就是乙個函式呼叫另乙個函式,只不過這個另乙個函式是它自己,但是最後一定設定終止呼叫的條件,比如在k=10 時候終止呼叫

遞迴演算法 猴子吃桃

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

猴子吃桃問題

猴子吃桃問題 時間限制 3000 ms 記憶體限制 65535kb 難度 0 描述 有一堆桃子不知數目,猴子第一天吃掉一半,又多吃了乙個,第二天照此方法,吃掉剩下桃子的一半又多乙個,天天如此,到第 m天早上,猴子發現只剩乙隻桃子了,問這堆桃子原來有多少個?m 29 輸入 第一行有乙個整數 n,表示有...

猴子吃桃問題

有乙隻猴子第一天摘下若干個桃子,當即吃掉了一半,有多吃了乙個 第二天又將剩下的桃子吃掉一半,有多吃了乙個 按照這樣的吃飯每天都吃掉前一天剩下的一半又多乙個。到了第10天,就剩下乙個桃子。問題,這個桃子第一天摘了多少個桃子。include int main printf d n ans return ...