这个递归函数是什么意思



我的任务是在MIPS中实现递归函数。这个函数是

function1(n) = n-5 (if n <= 3)

否则= 4*function1(n-1) - n*function1(n-3)

其中一个测试用例是,如果n = 6,那么结果是200。
怎么从这个函数中输入6得到200 ?对我来说,答案应该是2。是我对递归有什么不理解,还是我对函数的理解错了?我很困惑

你似乎在某个地方误解了这个功能。以下是我达到200分的步骤:

function1(6) = 4*function1(5) - 6*function1(3)    (by rule 2)
function1(5) = 4*function1(4) - 5*function1(2)    (by rule 2)
function1(4) = 4*function1(3) - 4*function1(1)    (by rule 2)
function1(3) = 3-5 = -2    (by rule 1)
function1(2) = 2-5 = -3    (by rule 1)
function1(1) = 1-5 = -4    (by rule 1)

替换回来……

function1(4) = 4*-2 - 4*-4 = -8 - -16 = 8
function1(5) = 4*8 - 5*-3  = 32 - -15 = 47
function1(6) = 4*47 - 6*-2 = 188 - -12 = 200

最新更新