斐波那契数列
在数学上,以递归的方法定义: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))
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。