//斐波那契数列:1,2,3,5,8,13…… //从第3个起的第n个等于前两个之和 //解法1: var n1 = 1,n2 = 2; for(var i=3;i<101;i++){ var reg = n1 + n2; console.log('第'+i+'个为:'+reg); n1 = n2;n2 = reg; } //解法2:开枝散叶,递推到一开始的1或2 // //以n=8 举例 // // 8 // / \ // / \ // / \ // 7 6 // / \ /\ // / \ 自行脑补 // 6 5 // / \ /\ // / \ 自行脑补 // / \ // / \ // / \ // 5 4 // / \ / \ // / \ / \ // 4 3 3 2 // / \ / \ / \ // 3 2 2 1 2 1 // / \ // 2 1
// 此解法拆成好多好多次执行,小心执行。。。
function com(stair){ if(stair == 1) return 1; if(stair == 2) return 2; return com(stair - 1) + com(stair - 2); } var n = 100; console.log(com(n));
参考资料: