斐波那契数列(1,1,2,3,5,8,13,21,34,55,89…求第 n 项)
- 递归
普通版
function feibonaqishu1 (n){
if (n<=1) {return 1}
return feibonaqishu1(n-1)+feibonaqishu1(n-2)
}
优化版
function feibonaqishu2 (n , ac1 = 1 , ac2 = 1) {
if( n <= 1 ) {return ac2};
return feibonaqishu2(n - 1, ac2, ac1 + ac2);
}
- 循环版
function feibonaqishu3 (n) {
if( n === 1 || n===2 ) {return 1};
let ac1 = 1, ac2 = 1;
for (let i = 2; i < n; i++) {
[ac1, ac2] = [ac2, ac1 + ac2];
}
return ac2
}