斐波那契数列
递归实现
$n = 20;
echo "递归实现:";
echo fibonacci($n);
echo "<br/>";
function fibonacci($n)
{
if ($n == 1)
return 1;
if ($n == 2)
return 1;
if ($n > 2)
return fibonacci($n-1) + fibonacci($n-2);
}
递归实现:6765非递归实现
$n = 20;
echo "非递归实现:";
echo fibonacci2($n);
function fibonacci2($n)
{
$index = 2;
$a = 1;
$b = 1;
if ($n<1)
return -1;
if ($n==1)
return 1;
if ($n==2)
return 1;
while ($n>$index){ //这里注意是 > 不是 >=
$temp = $a + $b;
$a = $b;
$b = $temp;
$index++;
}
return $b;
}
非递归实现:6765