有乙隻猴子第一天摘下若干個桃子,當即吃掉了一半,有多吃了乙個;第二天又將剩下的桃子吃掉一半,有多吃了乙個;按照這樣的吃飯每天都吃掉前一天剩下的一半又多乙個。到了第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...