写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:
F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。
方法一:递归(效率低,超出时间限制)
var fib = function(n) {
if(n<=0){
return 0;
}
if(n==1){
return 1;
}
return fib(n-1)+fib(n-2)
};
方法二:
var fib = function(n) {
if(n===0) return 0; //第0项
if(n===1) return 1;
let res1=0;
let res2=1;
let t=0;
for(i=1;i<n;++i){
t=res1+res2;
res1=res2;
res2=t%1000000007; //取模
}
return res2;
};