题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
思路:
(1)跳一级台阶 :
1 一种
(2)跳二级台阶 :
11/2 两种
(3)跳三级台阶 :
先跳一级还有两级台阶同情况(2) 记作=> 1 (2)
先跳两级还有一级台阶同情况(1) 记作=> 2 (1)
把这两种情况加起来就是跳三级台阶的一共可能
(2)+(1)
(4)跳四级台阶 :
先跳一级还有三级台阶同情况(3) 记作=> 1 (3)
先跳两级还有两级台阶同情况(2) 记作=> 2 (2)
把这两种情况加起来就是跳四级台阶的一共可能
(3)+(2)
(5)跳五级台阶 :
先跳一级还有四级台阶同情况(4) 记作=> 1 (4)
先跳两级还有三级台阶同情况(3) 记作=> 2 (3)
把这两种情况加起来就是跳五级台阶的一共可能
(4)+(3)
...
以此类推
是不是感觉很眼熟,像不像斐波那契数列
所以可以用递归和循环实现
递归代码如下:
function jumpFloor(number) { if(number === 1){ return 1 } if(number === 2){ return 2 } if(number > 2){ return jumpFloor(number-1)+jumpFloor(number-2) } }
循环的自行实现或去斐波那契数列那章看吧