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)
但是现在,因为值n是1,它应该返回2.
所以它基本上就是这样
return f(4) + f(3)+ f(2)
Run Code Online (Sandbox Code Playgroud)
应该是哪个9,但它给了我16.
任何人都可以解释请问?
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