2013-02-19 56 views
0

我想在java中做一些簡單的數學運算,但我有一些問題需要解決。我想每天增加一次,每天增加一次,增加的數量是每天開始時的起始數量的百分比,然後將它加到第二天的起始數字上。如何用遞歸解決這個問題?

如,如果起始數爲5和每日增加爲50%,則該號碼應當是5的第一天,7.5第二天,然後11.25,等...

我已經想出如何反覆地做到這一點,但我似乎無法得到它的工作遞歸

這裏是一個相當草率失敗的嘗試:

increase = start * percent; 
    endNum = start + increase; 
    startingNum += increase; 
    return endNum; 
+3

爲什麼你會想要* *遞歸地做到這一點? – Makoto 2013-02-19 04:36:09

+1

爲什麼不使用石英調度程序創建一個放置這個增量邏輯的工作。 – Anil 2013-02-19 04:36:57

+0

退出條件是什麼? – 2013-02-19 04:37:49

回答

0

您需要在您的遞歸函數的3個參數:

  • 起始數字。
  • 每個迭代的增加百分比
  • 您將增加起始號碼的次數(計數器)。這是您目前在遞歸公式中缺少的參數。

所以,有這個第三個參數,你應該做的唯一的事情就是遞歸調用你的函數,直到計數器下降到0

算法樣本:

function doFooOperation (start, percent, counter) 
    if (counter == 0) return 0 
    //do your operations here... 
    return doFooOperation(start, percent, counter - 1) 
end function 
+1

請注意,我不發佈完整的工作代碼,而只是顯示一個示例代碼應該看起來。給你全部的答案會是作弊。 – 2013-02-19 04:44:04