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

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

     
     
                                        
                                       
     
  • 相关阅读:
    css !import
    算法
    java web 运动前端
    oauth 2
    js 优化
    js 代码优化 (写的可以)
    2015/08/17 《有两条均线,你应该注意》
    佳能相机操作 EDSDK 教程 C# 版本
    2015/8/14——了2000股,是否正确呢——明天待验证?
    系统架构师考试——程序计数器 PC, 指令寄存器IR、状态寄存器SR、通用寄存器GR
  • 原文地址:https://www.cnblogs.com/manru75/p/10448575.html
Copyright © 2011-2022 走看看