1. 程式人生 > >案例:求斐波那契數列第n位是多少封裝函式

案例:求斐波那契數列第n位是多少封裝函式

//斐波那契數列:1,1,2,3,5,8,13,21,34,55…

 //我們寫一個函式getFB()就是用來求斐波那契數列第n位的數是多少.
  //把已經求過的項用物件儲存起來,以後如果還要求這個項就直接取出來用,這樣就解決了效能低下的問題.
  function createFB(){
    var obj = {};//宣告一個物件,用來儲存已經求過的項..
    function getFB(n){
      //先判斷以下,這個n位已經求過沒有,如果求過,就直接取出來,如果沒有求過,再求不遲
      if(obj[n] != undefined){
        //說明之前這個n求過.
        return
obj[n]; }else { //說明之前沒有求過. if(n == 1 || n == 2){ obj[n] = 1; return 1; }else { obj[n] = getFB(n-1) + getFB(n-2); return obj[n]; } } } return getFB;//返回getFB這個函式 } //測試: console.log(createFB()(50));//呼叫getFB函式,同時傳參