【笔记】斐波那契数列-递归&非递归-PHP实现

斐波那契数列


递归实现

$n = 20;
echo "递归实现:";
echo fibonacci($n);
echo "
"; 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

你可能感兴趣的:(PHP,趣味小题,面试题)