递归:
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]);
}