有乙隻猴子第一天摘下若干個桃子,當即吃掉了一半,有多吃了乙個;第二天又將剩下的桃子吃掉一半,有多吃了乙個;按照這樣的吃飯每天都吃掉前一天剩下的一半又多乙個。到了第10天,就剩下乙個桃子。問題,這個桃子第一天摘了多少個桃子。
#include
int main()
printf("%d\n", ans);
}return
0;}
演算法分析:
keyvalue
測試輸入
10測試輸出
1534
時間複雜度
o(n)
空間複雜度
o(1)
時間複雜度:
space(n) = heap(n) + stack(n)
heap(n):額外申請堆記憶體的空間大小
stack(n): 表示函式棧的最大深度
由於此處沒有申請額外堆記憶體空間,且函式棧的最大深度為1,所以時間複雜度為1。
#include
int fruit_num(int i)
int main()
return
0;}
演算法分析:
keyvalue
測試輸入
10測試輸出
1534
時間複雜度
o(n)
空間複雜度
o(n)
時間複雜度:
space(n) = heap(n) + stack(n)
heap(n):額外申請堆記憶體的空間大小
stack(n): 表示函式棧的最大深度
由於此處沒有申請額外堆記憶體空間,且函式棧的最大深度為n,所以時間複雜度為n。
棧的深度測試:
#include
int fruit_num(int i)
else
}int main()
return
0;}
結果:
函式 10進棧
函式 9進棧
函式 8進棧
函式 7進棧
函式 6進棧
函式 5進棧
函式 4進棧
函式 3進棧
函式 2進棧
函式 1進棧
函式1彈棧
函式2彈棧
函式3彈棧
函式4彈棧
函式5彈棧
函式6彈棧
函式7彈棧
函式8彈棧
函式9彈棧
函式10彈棧
1534
#include
int fruit_num(int i)
int main()
return
0;}
時間複雜度:
space(n) = heap(n) + stack(n)
heap(n):額外申請堆記憶體的空間大小
stack(n): 表示函式棧的最大深度
由於此處沒有申請額外堆記憶體空間,且函式棧的最大深度為n,所以時間複雜度為n。
猴子吃桃問題
猴子吃桃問題 時間限制 3000 ms 記憶體限制 65535kb 難度 0 描述 有一堆桃子不知數目,猴子第一天吃掉一半,又多吃了乙個,第二天照此方法,吃掉剩下桃子的一半又多乙個,天天如此,到第 m天早上,猴子發現只剩乙隻桃子了,問這堆桃子原來有多少個?m 29 輸入 第一行有乙個整數 n,表示有...
猴子吃桃問題
猴子吃桃問題 猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了乙個 第二天早上又將剩下的桃子吃掉一半,又多吃了乙個。以後每天早上都吃了前一天剩下的一半零乙個。到第10天早上想再吃 時,見只剩下乙個桃子了。求第一天共摘了多少。方法一 public class test w w 1 2 syst...
猴子吃桃問題
問題 有乙隻猴子,第一天摘了若干個桃子 當即吃了一半,但還覺得不過癮 就又多吃了乙個。第2天早上又將剩下的桃子吃掉一半,還是覺得不過癮,就又多吃了兩個。以後每天早上都吃了前一天剩下的一半加天數個 例如,第5天吃了前一天剩下的一半加5個 到第n天早上再想吃的時候,就只剩下乙個桃子了。public cl...