function fibonacci(n) {
return n<=2 ? 1 : fibonacci(n-1) + fibonacci(n-2) //递归调用
}
console.log(fibonacci(7))
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;
累加。
厉害了 你最后几句话一下子给我弄明白了 谢谢 谢谢
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
费波那契数列就是某个数是前两个数之和
断点看容易看出来的