斐波那契数列
在数学上,以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)
即:第三项为前两项相加之和,数列为:[1, 1, 2, 3, 5, 8, 13, 21, 34 …]
代码实现
function getNthFibonacci(count) {
var count = count * 1, //如果为其他类型,则转int型
tailFactorial = function(count, curr = 1, next = 1) { //ES6函数参数默认值
if (count == 0) {
return curr;
} else {
return tailFactorial(count - 1, next, curr + next); //尾递归采用函数,可有效解决栈溢出问题
}
};
return tailFactorial(count); //直接传count参数
} ;
//求出前100个数字
Array(100).fill(1).map((v,i)=>getNthFibonacci(i))
网友评论