JS實(shí)現(xiàn)斐波那契數(shù)列的五種方式(小結(jié))
更新時間:2020年09月09日 09:40:04 作者:一只菜鳥攻城獅啊
這篇文章主要介紹了JS實(shí)現(xiàn)斐波那契數(shù)列的五種方式(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
下面是五種實(shí)現(xiàn)斐波那契數(shù)列的方法
循環(huán)
function fibonacci(n){ var res1 = 1; var res2 = 1; var sum = res2; for(var i = 1;i < n;i ++){ sum = res1 + res2; res1 = res2; res2 = sum; } return sum; }
普通遞歸
function fibonacci (n) { if ( n <= 1 ) {return 1}; return fibonacci(n - 1) + fibonacci(n - 2); }
尾遞歸
function fibonacci(n, ac1=1,ac2=1){ if(n<=1){return ac2} return fibonacci(n-1, ac2, ac1 + ac2) } Generator 函數(shù)和for...of循環(huán) // Generator 函數(shù)和for...of循環(huán) function* fibonacci() { let [prev, curr] = [0, 1]; // foo(;;)相當(dāng)于死循環(huán) 等于while(1) for (;;) { yield curr; [prev, curr] = [curr, prev + curr]; } } for (let n of fibonacci()) { if (n > 1000) break; console.log(n); }
閉包實(shí)現(xiàn)
const fibonacci = function(){ var mem = [0,1]; var f = function(n){ var res = mem[n]; if(typeof res !== 'number'){ mem[n] = f(n-1) + f(n-2); res = mem[n]; } return res; } return f; }();
到此這篇關(guān)于JS實(shí)現(xiàn)斐波那契數(shù)列的五種方式(小結(jié))的文章就介紹到這了,更多相關(guān)JS 斐波那契數(shù)列內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript中this函數(shù)使用實(shí)例解析
這篇文章主要介紹了JavaScript中this函數(shù)使用實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-02-02js遍歷添加欄目類添加css 再點(diǎn)擊其它刪除css【推薦】
這篇文章主要介紹了js遍歷添加欄目類添加css 再點(diǎn)擊其它刪除css的實(shí)例代碼,非常不錯,具有一定的參考借鑒借鑒價值,需要的朋友可以參考下2018-06-06js中opener與parent的區(qū)別詳細(xì)解析
本篇文章主要是對js中opener與parent的區(qū)別進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-01-01springMvc 前端用json的方式向后臺傳遞對象數(shù)組方法
今天小編就為大家分享一篇springMvc 前端用json的方式向后臺傳遞對象數(shù)組方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08