方式一:循环的方式
/** * 使用循环的方式 * 0 1 1 2 3 5 8 13 21 */function fib1($n){ $arr = [0, 1, 1]; for ($i = 3; $i <= $n; $i++) { $arr[$i] = $arr[$i - 1] + $arr[$i - 2]; } return $arr[$n];}
方式二:递归的方式
/** * 使用递归的方式 */function fib2($n){ if ($n == 0) { return 0; } if ($n == 1 || $n == 2) { return 1; } return fib2($n - 1) + fib2($n - 2);}