算法(一)斐波那契数列

345 阅读1分钟

菲波那切数列:0,1,1,2,3,5,8,13,21

规律:F0=0,F1=1,Fn=F(n-1)+F(n-2)

 

需求:输入数组下标,显示斐波那契数列中对应的数字。

我这里使用两种方法实现:递归和非递归

<?php
 
    /**
     * 非递归
     */
    function getNumber($number)
    {
        $array = [];
        $array[0] = 0;
        $array[1] = 1;
        for($i 2;$i<=$number;$i++)
        {
            $array[$i] = $array[$i 1] + $array[$i 2];
        }
        return $array[$number];
    }
 
    $res getNumber(20);
    echo "非递归结果:".$res;
    echo "<br>";
 
    /**
     * 递归
     */
    function getNumberDiGui($number)
    {
        if($number == 0)
        {
            return 0;
        }
        else if($number == 1)
        {
            return 1;
        }
        else
        {
            return getNumberDiGui($number 1) + getNumberDiGui($number 2);
        }
    }
 
    $ult getNumberDiGui(20);
    echo "递归结果:".$ult;

 

有好的建议,请在下方输入你的评论。

欢迎访问个人博客 guanchao.site