题目
- 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。
思路
- 简单粗暴递归法
- 递归算法时间复杂度太高,经过优化可以使用
迭代法
代码
- 递归法
<?php
function fibonacci($n)
{
if ($n == 0) {
return 0;
} else if ($n == 1) {
return 1;
}
return fibonacci($n - 1) + fibonacci($n - 2);
}
echo fibonacci(10);
- 迭代法
<?php
function fibonacci($n)
{
$ret = [];
for ($i = 0; $i <= $n; $i++) {
if ($i == 0) {
$ret[$i] = 0;
continue;
} else if ($i == 1) {
$ret[$i] = 1;
continue;
}
$ret[$i] = $ret[$i - 1] + $ret[$i - 2];
}
return $ret[$n];
}
echo fibonacci(10);