如何通过递归来解决这个问题?

时间:2013-02-19 04:30:29

标签: java math recursion

我正在尝试在java中进行一些简单的数学运算,但是我遇到了一些问题。我想取一个数字并每天增加一次,增加的数字是每天开始时的起始数字的百分比,然后将其加到第二天的起始数字上。

同样,如果起始数为5,每日增加数为50%,那么第一天的数字应该是5,第二天应该是7.5,然后是11.25,等等......

我已经想出了如何迭代地执行此操作,但我似乎无法让它以递归方式工作

这是一个相当草率的失败尝试:

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

1 个答案:

答案 0 :(得分: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