递归:
public function fei($n)
{
static $map = []; //使用局部静态变量存储上一次递归的值,尾递归实现
if (isset($map[$n])) {
return $map[$n];
}
if ($n < 3) {
$map[$n] = 1;
return 1;
}
$map[$n] = $this->fei($n-1) + $this->fei($n - 2);
return $map[$n];
}
循环:
public function feiArray($n)
{
$arr = [];
$arr[1] = 1;
$arr[2] = 1;
for ($i = 3; $i <= $n; $i++) {
$arr[$i] = $arr[$i-1] + $arr[$i-2];
}
var_dump($arr[$n]);
}
本文探讨了递归和循环两种方法在计算斐波那契数列中的应用,通过对比fei()函数的尾递归实现与feiArray()的数组迭代,揭示了它们在效率和代码结构上的差异。
1913

被折叠的 条评论
为什么被折叠?



