斐波那契数列中获取第n个数据值

class Fibonacci
{

/**
 * Description:迭代方法获取fibonacci第n项数值
 *
 * @param int $n
 * @return int
 */
public static function fib_interation($n)
{
    $fib = array(); // 定义fibonacci数组

    if ($n < 0) {
        return 0;
    }

    for ($fib[0] = 0, $fib[1] = 1, $i = 2; $i <= $n; $i++) {
        $fib[$i] = $fib[$i - 1] + $fib[$i - 2];
    }

    return $fib[$n];
}

/**
 * Description:递归方法获取fibonacci第n项数值
 *
 * @param int $n
 * @return int
 */
public static function fib_recursive($n)
{
    if ($n <= 0) {
        return 0;
    } elseif ($n == 1) {
        return 1;
    } else {
        return self::fib_recursive($n - 1) + self::fib_recursive($n - 2);
    }
}

}

$fib1 = Fibonacci::fib_interation(5);
echo $fib1 . "\n";

$fib2 = Fibonacci::fib_recursive(5);
echo $fib2 . "\n";

posted on 2018-11-13 08:35  Ryanyanglibin  阅读(801)  评论(0编辑  收藏  举报

导航