用js刷剑指offer(跳台阶)

题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
牛客网链接

思路

这一题和斐波那契数列思路完全一样。
假如青蛙从第n个台阶开始往下跳,由于青蛙一次可以跳1个台阶,也可以跳2个台阶级,所以🐸可以跳到第n-1或n-2台阶,一种两种方式。
现在假如青蛙从第1个台阶跳到第n-2个台阶一共有f(n-2)种跳法,从第1个台阶跳到第n-1个台阶一共有f(n-1)种跳法,那么f(n)=f(n-1)+f(n-2)。
qingwa

js代码

function jumpFloor(number)
{
    // write code here\
    if (number < 1) return 0
    if (number === 1) return 1
    if (number === 2) return 2
    let prePre = 1
    let pre = 2
    let now
    for (let i = 3; i <= number; i++){
        now = prePre + pre
        prePre = pre
        pre = now
    }
    return now
}
            
posted @ 2019-07-11 10:50  1Shuan  阅读(163)  评论(0编辑  收藏  举报