關于遞歸函數(二)的疑問
任務問題我總覺得別扭,,“猴子第一天摘下N個桃子,當時就吃了一半“,意思是不是第一天所剩和第一天摘的不一樣??; 第一天所剩=(第一天摘的/2 -1)啊 第二天=第一天所剩/2-1; 第三天=第二天所剩/2-1; . . . .第九天所剩=第八天所剩/2-1; 把我們的程序結果逆運算:第九天剩的=4 第八天=(4+1)*2=10; 第七天=(10+1)*2=22; . 第一天剩的=(766+1)*2; 第一天摘得=(1534+1)*2;. ,那么問題來了,猴子第一天到底摘了幾個桃?
2017-01-10
之前有回答這個問題:請參考:http://www.xianlaiwan.cn/qadetail/179726?。
你的疑問是對的,答案確實是點問題,題目本身沒問題。{練習代碼后面設置num為每天吃剩的桃的數目(int num; ? ?//定義所剩桃子數。),在n=10時的時候遞歸終止,return1 ,可是這時候第十天還沒吃呢,是吃之前就只有一個了,所以這個遞歸終止就不對,當然結果也就不對了},其實就是練習代碼本身有點小問題導致的(雖然這不影響對遞歸的理解,不過我覺得該明白還是要明白)。 ? ? ? ? ? ? ? ? 實際吃前、吃后數目如下:
猴子第一天摘了:1534個桃子。
猴子第 1 天吃之前桃子個數:1534 ???? 吃之后桃子個數:766
猴子第 2 天吃之前桃子個數:766 ? ? ? ?吃之后桃子個數:382
猴子第 3 天吃之前桃子個數:382? ? ? ? 吃之后桃子個數:190
猴子第 4 天吃之前桃子個數:190 ???? ? 吃之后桃子個數:94
猴子第 5 天吃之前桃子個數:94 ???? ? ? 吃之后桃子個數:46
猴子第 6 天吃之前桃子個數:46 ????? ? ?吃之后桃子個數:22
猴子第 7 天吃之前桃子個數:22 ???? ? ? 吃之后桃子個數:10
猴子第 8 天吃之前桃子個數:10 ???? ? ? 吃之后桃子個數:4
猴子第 9 天吃之前桃子個數:4 ? ???? ? ? 吃之后桃子個數:1
猴子第 10天吃之前桃子個數:1
2017-01-04
你好,第幾天剩下幾個桃子,應該描述為那天猴子吃飯前的桃子數量。(確實是題目描述不準確,但是不要轉牛角尖啊,兄弟)
依據就是倒推,題目明確說明第九天剩下4桃子,而且第十天吃之前發現只有一個桃子了。如果按你的分析,第九天剩下4個桃子,那第十天吃之前肯定還有4個,所以你的分析不成立。