zoukankan      html  css  js  c++  java
  • A题之变态青蛙跳

    一仅仅青蛙一次能够跳上1级台阶,也能够跳上2级……它也能够跳上n级。

    求该青蛙跳上一个n级的台阶总共同拥有多少种跳法。


    分析:
    这是一个斐波拉契数列的引申问题,先来看看斐波拉契数列:
    n<=1,    f(n)=1;
    n>=2,    f(n)=f(n-1)+f(n-2);
    假设这个题变一下“一仅仅青蛙一次能够跳上1级台阶。也能够跳上2级。求该青蛙跳上一个n级的台阶总共同拥有多少种跳法。”就成了典型的斐波拉契数列问题了。

    回过头来看这个题,貌似没有头绪。怎么办,採用最笨的方法。穷举:
    n<=1,     f(n)=1;
    n=2,        f(2)=2;
    n=3,        f(3)=4;    
    第一次走一步,2种。第一次走俩步,1种。一次走三步。1种;
    n=4,        f(4)=8;    
    第一次走一步,4种。第一次走俩步,2种;第一次走三步。1种。一次走四步,1种。
    是不是看到规律了:
    f(n)=f(n-1)+f(n-2)+.....+f(1)+f(0)=2f(n-1)

    上Java代码:

    public class Solution {
        public int JumpFloorII(int target) {
          if(target<=1)
                return 1;
            else
                return 2*JumpFloorII(target-1);
        }
    }
  • 相关阅读:
    bat windows批处理 移动所有子目录文件
    Oracle常见的QA
    [转载]行动起来
    [转载]微笑
    Excel数据更新至Mysql数据库
    sql server QA
    关于SharpZipLib的压缩与解压问题
    整合Spring.net到asp.net网站开发中初探
    设计模式概要
    Oracle 常用语句档案(二)
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8448507.html
Copyright © 2011-2022 走看看