zoukankan      html  css  js  c++  java
  • 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)
        }
    }
    

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

     
     
                                        
                                       
     
  • 相关阅读:
    KMP算法之查找模式串在源串中出现的次数
    快速排序算法分析
    排序算法的稳定性分析(转)
    动态规划之最优二叉搜索树(算法导论)
    动态规划之最长公共子序列(算法导论)
    动态规划原理(算法导论)
    动态规划之钢条切割(算法导论)
    动态规划之矩阵链相乘问题(算法导论)
    HNU 13064 Cuckoo for Hashing解题报告 North America
    HNU 13081 Even Up Solitaire解题报告
  • 原文地址:https://www.cnblogs.com/manru75/p/10448575.html
Copyright © 2011-2022 走看看