概要
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);
}
}