zoukankan      html  css  js  c++  java
  • 剑指Offer——变态跳台阶

    1、题目描述

      一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

    2、代码实现

    package com.baozi.offer;
    
    /**
     * 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
     *
     * @author BaoZi
     * @create 2019-07-11-10:32
     */
    public class Offer8 {
        public static void main(String[] args) {
            Offer8 offer8 = new Offer8();
            int reslut = offer8.JumpFloorII(4);
            System.out.println(reslut);
        }
    
        /**
         * 当有1节台阶的时候:1种跳法(一次跳一阶)
         * 当有2阶台阶的时候:2种跳法(一次跳一阶+一次跳两阶)
         * 当有3阶台阶的时候:4种跳法(一次跳一阶+一次跳两阶再跳一阶+一次跳一阶再跳两阶+一次跳三阶)
         * 当有4阶台阶的时候:7种跳法(
         * 当第一步先跳1阶,剩下3阶和当有3阶的情况是一样的(4)
         * 当第一步先跳2阶,剩下2阶和当有2阶的情况是一样的(2)
         * 当第一步先跳3阶,剩下1阶和当有1阶的情况是一样的(1)
         * 当第一步先跳4阶,剩下0阶直接跳上去了(1)
         * )
         * 当有n阶台阶的时候(
         * 当第一步先跳1阶,剩下n-1阶和当有n-1阶的情况是一样的
         * 当第一步先跳2阶,剩下n-2阶和当有n-2阶的情况是一样的
         * 当第一步先跳3阶,剩下n-3阶和当有n-3阶的情况是一样的
         * .............
         * 当第一步先跳n阶,剩下0阶直接跳上去了(1)
         * )
         * 所以:当n>=3的时候,JumpFloorII(n) = JumpFloorII(n-1)+JumpFloorII(n-2)+....+JumpFloorII(2)+JumpFloorII(1)+1;
         *
         * @param target 台阶的总阶数
         * @return 青蛙跳上一个n级的台阶总共有多少种跳法
         */
        public int JumpFloorII(int target) {
            int result = 0;
            if (target == 1) {
                result = 1;
            }
            if (target == 2) {
                result = 2;
            }
            if (target >= 3) {
                while (target > 0) {
                    target--;
                    result = result + JumpFloorII(target);
                }
                result += 1;
            }
            return result;
        }
    }
    

      

  • 相关阅读:
    word 快捷键
    java中的各种修饰符作用范围
    pinyin4j的基本使用
    022-pinyin4j工具类模板
    测开之路一百四十五:SQLAlchemy与后台模板整合之新增、查询、删除
    测开之路一百四十四:ORM之SQLAlchemy查询
    测开之路一百四十三:ORM框架之SQLAlchemy模型及表创建
    测开之路一百四十二:ORM框架之SQLAlchemy建库、建表、数据库操作
    测开之路一百四十一:蓝图实现程序模块化
    测开之路一百四十:可拔插视图(基于类、基于方法)
  • 原文地址:https://www.cnblogs.com/BaoZiY/p/11168619.html
Copyright © 2011-2022 走看看