用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)。
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
}