非递归写法:
function fbnq($n){ //传入数列中数字的个数
    if($n <= 0){
        return 0;
    }
    $array[1] = $array[2] = 1; //设第一个值和第二个值为1
    for($i=3;$i<=$n;$i++){ //从第三个值开始
        $array[$i] = $array[$i-1] + $array[$i-2];
    //后面的值都是当前值的前一个值加上前两个值的和
    }
    return $array;
}

function f2($n){

    $num1 $num2 $temp = 1;
    for($i=2;$i<$n;$i++){
//1 1 2 3 5 8 13 ....
        $temp $num1 $num2;  //$temp = 2
        $num1 $num2;          //$num1 = 1
        $num2 $temp;          //$num2 = 2
    }
    return $temp;
}
 

递归写法:
function fbnq($n){
    if($n <= 0) return 0;
    if($n == 1 || $n == 2) return 1;
    return fbnq($n - 1) + fbnq($n - 2);
}

posted on 2020-05-10 11:09  周大妈  阅读(463)  评论(0)    收藏  举报