剑指offer php实现 斐波那契数列

题目

  • 大家都知道斐波那契数列,现在要求输入一个整数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);

猜你喜欢

转载自blog.csdn.net/qq_36431213/article/details/80205907