フィボナッチ数およびホップステップ問題 - オファー(10)勝利

概要

2 ^(n-1)のシフト操作を行うことができます:1 <<(n-1)の
再帰は考えていない場合、あなたは法律を見つけることができ、コードは非常に簡単です

フィボナッチ数(10)

我々は、すべての項目のn番目のフィボナッチ数フィボナッチ数列(0から、最初の0は0である)あなたが出力、今フィボナッチ数、および整数を入力するように求めていることを知っているのn。

N <= 39

public class Solution {
    public int Fibonacci(int n) {
        // 先判断n必须在范围内取值
        if(n > 39 && n <= 0) return 0;
        // 为1直接返回
        if(n == 1) return 1;
        
        int a = 0;
        int b = 1;
        int result = 0;
        for(int i = 2;i<=n;i++){
            result = a + b;
            a = b;
            b = result;
        }    
        return result;       
    }
}

ジャンプの階段(10)

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

public class Solution {
    public int JumpFloor(int target) {
        if(target == 1) return 1;
        if(target == 2) return 2;
        int a = 1;
        int b = 2;
        int result = 0;
        for(int i = 3;i<=target;i++){
            result = a + b;
            a = b;
            b = result;
        }
        return result;
    }
}

異常なジャンプ階段

カエルは、クラス1レベルにジャンプすることができます。また、レベル2に飛び乗っすることができます...... nはまた、ステージの上にジャンプすることができます。カエルはどのように多くのジャンプのn級レベルの合計を求めて飛び込みました。

class Solution {
    public int JumpFloorII(int target) {
        if(target == 1) return 1;
        return (int)Math.pow(2,target-1);
    }
}

public class Solution {
    public int JumpFloorII(int target) {
        if(target == 1) return 1;
       // return (int)Math.pow(2,target-1);
        return 1<<(target -1);
    }
}

おすすめ

転載: www.cnblogs.com/benjieqiang/p/11404019.html
おすすめ