js实现斐波那契数列

斐波那契数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)

 // 使用for循环
 function fibonacci(n) {
   let fibo = [1,1]
   let a = 1;
   let b = 1;
   for (let index = 0; index < n; index++) {
    [b, a] = [a, a+b]
      fibo.push(a)              
    }
    return fibo.toString()
 }
 console.log(fibonacci(6))
 // 1,1,2,3,5,8,13,21
 
// 使用while循环
function fibonacci2 (n) {
	let nums = [1]
	let count = 1;
	let prev = 0;
	let curr = 1;
	if (n == 1) {
		return [0]
	}
	while (count < n - 1) {
		curr += prev;
		prev = curr - prev;
		nums.push(curr);
		count ++;
	}
	nums.unshift(0);
	return nums
}
console.log(fibonacci2(6));
// [0, 1, 1, 2, 3, 5]

// 使用递归
 function fibonacci3(n) {
   if (n < 2) return n
    return fibonacci2(n-1) + fibonacci2(n-2)
 }

 let ff = []
 for (let index = 0; index < 6; index++) {
    ff.push(fibonacci3(index))
 }
 console.log(ff)
 // [0,1,1,2,3,5]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值