[オファー] [10-2] [カエルジャンプ次の問題]

タイトル説明

  カエルは、クラス1レベルにジャンプすることができ、あなたはまた、レベル2に飛び乗っすることができます。カエルはどのように多くのジャンプ(別の計算異なる結果の順序)は、n級レベルの合計を求めて飛び込みました。

アイデア解析

  1. 実際には、フィボナッチ数、
  2. F(1)= 1、F(2)= 2、N = 3、2例:
    • カエルのステップにジャンプし、そこに2つのステップがあるので、この方法は、(2)Fにジャンプし、
    • カエル(1)方法Fをジャンプするように、最初の2つのステップをジャンプ、及びステップがあり、
    • 要約するとジャンプ方法をn = 3 F(1)+ F(2)

Javaコード

public class Offer010_2 {
    public static void main(String[] args) {
        
    }
    public static int JumpFloor(int target) {
        return Solution1(target);
    }

    /**
     * 解法一 斐波那契数列 非递归
     * @param target
     * @return
     */
    private static int Solution1(int target) {
        if(target == 1) {
            return 1;
        }
        if(target ==2) {
            return 2;
        }
        int fm2 = 1;
        int fm1 = 2;
        int fN = 0;
        for(int i=3;i<=target;i++) {
            fN =fm2+fm1;
            fm2 = fm1;
            fm1 = fN;
        }
        return fN;
    }

}

コードリンク

安全コードを証明するためにオファー-Java

おすすめ

転載: www.cnblogs.com/haoworld/p/offer102-qing-wa-tiao-jie-wen-ti.html