php求斐波那契數列的第n個數

 

function test($n)  
{

    if ($n == 1 || $n == 2) {
        return 1;
    }
    return test($n - 2) + test($n - 1);
//					3     		 4	
//				1	2      2   3
//				1	1     1   1   1
}

echo  test(6);
//優化改進循環的方法:

function test2($n)
{
    $sum = 1;
    $sum1 = 1;
    if (1 == $n) {
        return 1;
    } else if (2 == $n) {
        return 1;
    } else {
        for ($i = 0; $i < $n - 2; $i++) //  第三項等於前兩相加
        {
            $tem = $sum;   //  tem 保存原來的sum
            $sum += $sum1; //  sum= 前兩項相加
            $sum1 = $tem;  //  sum1 =原來的sum    始終保證第三項等於前兩項相加
        }
        return $sum;
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章