JavaScript算法系列之-----------------跳台阶(JS实现)

题目描述

一只青蛙一次可以跳上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)
    }
}

 

循环的自行实现或去斐波那契数列那章看吧

 
 
                                    
                                   
 
posted @ 2019-02-28 10:11  灭世的蜜糖  阅读(413)  评论(0编辑  收藏  举报