1:递归
function fb1(n){
if(n <= 2){
return 1;
}else{
return fb1(n-1) + fb1(n-2);
}
}
2:for 循环(迭代)
function getFib(num) { var num1 = 1; var num2 = 1; var sum = 0; for (var i = 3; i <= num; i++) { sum = num1 + num2; num1 = num2; num2 = sum; } return sum; }
3:闭包
const fb4 = 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;
}();