首页 新闻 会员 周边

有没有大佬解释一下执行之后为啥是13

0
悬赏园豆:100 [已解决问题] 解决于 2019-06-27 16:42

function fibonacci(n) {
return n<=2 ? 1 : fibonacci(n-1) + fibonacci(n-2) //递归调用
}

console.log(fibonacci(7))

饿了要吃肉i的主页 饿了要吃肉i | 初学一级 | 园豆:112
提问于:2019-06-27 15:56
< >
分享
最佳答案
0

f7 = f6 + f5;
= f5+f4+f4+f3
= f4+f3+2(f3+f2)+f2+f1
=f3+f2+f2+f1+2(f2+f1+1)+1+1
=f2+f1+1+1+1+2(1+1+1)+1+1
=1+1+11
=13
所谓递归,就是当不满足终止条件时,就一直往前调;
不满足n<=2;则往前走;
只有n<=2时,赋值为1;
累加。

收获园豆:100
你风致 | 老鸟四级 |园豆:2213 | 2019-06-27 16:15

厉害了 你最后几句话一下子给我弄明白了 谢谢 谢谢

饿了要吃肉i | 园豆:112 (初学一级) | 2019-06-27 16:41
其他回答(2)
0

fibonacci(1) =>1;
fibonacci(2) =>1;
fibonacci(3) =>fibonacci(1)+fibonacci(2)=>2;
fibonacci(4)=>fibonacci(2)+fibonacci(3)=>3;
fibonacci(5)=>fibonacci(3)+fibonacci(4)=>5;
fibonacci(6)=>fibonacci(4)+fibonacci(5)=>8;
fibonacci(7)=>fibonacci(5)+fibonacci(6)=>13;

1,1,2,3,5,8,13
费波那契数列就是某个数是前两个数之和

海之殇 | 园豆:500 (菜鸟二级) | 2019-06-27 16:05
0

断点看容易看出来的

刘下来 | 园豆:919 (小虾三级) | 2019-07-02 02:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册