javascript斐波那契数列

斐波那契数列是指形如:1,1,2,3,5…除了第一项和第二项,每一项都等于前两项之和

1.递归方法

不好的地方在于输入的n大于一定数时,会算法复杂度过大,陷入死循环

function Fibonacci (n) {
  if (n == 1 || n == 2) {
    return 1
  }
  return Fibonacci(n-1) + Fibonacci(n-2)
}

2.迭代

function Fibonacci (n) {
  let num1 = 1,num2 = 1,sum
  if (n === 1 || n === 2) {
    return 1
  }
  for (let i = 2; i < n; i++) {
    sum = num1 + num2
    num1 = num2
    num2 = sum
  }
  return sum
}

3.输出斐波那契

function Fibonacci (n) {
  let arr = []
    for (let i = 0; i < n; i++) {
      if(i == 0 || i == 1) {
        arr.push(1)
      } else {
        arr.push(arr[i-1]+arr[i-2])
      }
    }
  return arr
} Fibonacci(3)  // [1,1,2]

4.青蛙跳台阶
在这里插入图片描述

function jumpFloor(number)
{
    let num1 = 1,num2 = 2,sum
    if (number == 1) {
        return 1
    } else if (number == 2) {
        return 2
    } else {
        for(let i = 3; i <= number; i++){
            sum = num1 + num2
            num1 = num2
            num2 = sum
        }
        return sum
    }
}

说明:
一阶台阶只有:1 ;
二阶有:[1,1];[2] 两种;
三阶有:[1,1,1]; [1,2]; [2,1]三种;
四阶有:[1,1,1,1];[1, 2, 1];[1, 1, 2];[2, 2];[2, 1, 1]五种
所以从第三阶开始可以看成是前两个种数相加得来的

5.变态跳台阶
在这里插入图片描述
经过列举和数学归纳法证明 f(n)=2(n-1) (感兴趣的小伙伴拿可自己算一下哦)
所以可知

function jumpFloorII(number)
{
    return Math.pow(2,number-1)
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值