1. 程式人生 > 實用技巧 >斐波那契列數JS的三種實現

斐波那契列數JS的三種實現

大家是怎麼實現斐波那契列數的

1,1,2,3,5,8...
f(n)=f(n-1) + f(n-2)

廣州vi設計http://www.maiqicn.com 辦公資源網站大全https://www.wode007.com

方法一:

function f(n){
    if(n == 1 || n == 0){
        return 1;
    }
    return f(n-1) + f(n-2);
}

再給兩種解法,對比一下

方法二:

functionf(n){
    vararr=[];
varvalue=null;

function_f(n){
        if(n==1||n==0){
        return1;
    }
    if(arr[n])
        returnarr[n];
        value=_f(n-1)+_f(n-2);
        arr[n]=value;
        returnvalue;
    }
    return_f(n);
}        

還有一種更簡單的用的是陣列儲存


方法三:

functionfn(n){
    vardp=newArray(n+1);
dp[0]=dp[1]=1;
for(leti=2,length=dp.length;i<length;i++){
dp[i]=dp[i-1]+dp[i-2];
}
returndp[n];
}