描绘php代码函数/递归; 11级功能/递归

Ahm*_*ran 1 php recursion

function f($n)
{
   if ($n == 0 || $n == 1)
      return 2;
   return  f($n-1) + f($n-2);
}

echo f(5);
Run Code Online (Sandbox Code Playgroud)

这给了我16但我不明白为什么.

我知道它是这样的:

return f(4) + f(3)
return f(4) + f(3)+ f(3) + f(1)
Run Code Online (Sandbox Code Playgroud)

但是现在,因为值n1,它应该返回2.

所以它基本上就是这样

return f(4) + f(3)+ f(2)
Run Code Online (Sandbox Code Playgroud)

应该是哪个9,但它给了我16.

任何人都可以解释请问?

Md *_*san 5

f(5) = f(4)                        + f(3)
     = f(3)           + f(2)       + f(2)        + f(1)
     = f(2)     +f(1) + f(1) + f(0) + f(1) + f(0) + 2
     = f(1)+f(0)+ 2   + 2    + 2    + 2    + 2    + 2
     = 2   + 2  + 2   + 2    + 2    + 2    + 2    + 2
     = 16
Run Code Online (Sandbox Code Playgroud)

希望以上解释能解释价值16