タイトル説明
アイデア:
n番目のジャンプ提供されるこの問題に関するn次のレベルが存在します。次のように:
F(1)= 1
F(2)F(2-1)+ F(2-2)// F(2-2)=は、2次の周波数ホッピング2順序を表します。
F(3)= F(3-1)+ F(3-2)+ F(3-3)
...
F(N)= F(N-1)+ F(N-2)+ F(N-3)+ ... + F(N-(N-1))+ F(NN)
説明:
1)ここで、f(n)はn番目の時間ステップを表す有する1,2、...ホップカウント方式の次数n番目。
2)N = 1、ジャンプの一種類で、f(1)= 1
(2)F(2-1)+ F(2-2)= F 3)は、n = 2、問題(1)に戻り2つのジャンプモード、一次または二次、が存在するであろう
4)は、n = 3、ジャンプモードの三種類があるだろう、一次、二次、三次、
その背もたれ1のうち第一段階:F(3-1)一次の2、残りF(3-2); 3一次、残りF(3-3)
それが結論されたこと(3)F(3-1)+ F(3-2)+ F(3-3)= F
5)N = N場合、Nよう、ホップがあり、一次、二次... N順序は、結論:
F(N) = F(N-1)+ F(N-2)+ ... + F(N-(N-1))+ F(NN)=> F(0)+ F(1)+ F(2)+ F(3)+ ... + F(n-1)と
6)上記のことから、すでに結論ですが、簡単にするために、我々は簡単にするために続けることができます。
F(N-1)= F(0)+ F(1)+ F(2)+ F(3)+ ... + F((N-1)-1)= F(0)+ F(1 )+ F(2)+ F(3)+ ... + F(N-2)
F(N)= F(0)+ F(1)+ F(2)+ F(3)+ ... + F(N-2)+ F(N-1)= F(N-1)+ F(N-1)
これは、描画することができます。
F(N)= 2 * F(N-1)
7)ステップn次、1、2、...第n次モードでの決定的な結論、ジャンプ、ジャンプ方法が何らかの形です。
| 1、(N = 0)
F(N)= | 1、(N = 1)
パブリック クラスソリューション{ 公共 のint JumpFloorII(INT ターゲット){ 場合(目標<= 0 ){ 戻り -1 。 } そう であれば(ターゲット== 1 ){ 返す 1 。 } 他{ リターン 2 * JumpFloorII(ターゲット- 1 )。 } } }
パブリック クラスソリューション{ 公共 のint JumpFloorII(INT ターゲット){ int型 jumpFlo = 1 。 一方、(!= 0 --target ) { jumpFlo * = 2 ; } 戻りjumpFlo。 } }
その後、別の方法
パブリック クラスソリューション{ 公共 のint JumpFloorII(INT ターゲット){ リターン 1 << - ターゲット。 } }
1 2を乗じ残され、左標的-1ビットに基づいて1〜2 ^(ターゲット-1)が乗算されます