トピック1:
我々は、すべての今、フィボナッチ数、および整数nを入力するように求められていることを知っている、あなたは出力n番目のフィボナッチ数は、項目の順序をフィボナッチのn <= 39(0から、最初の0は0です)
公共 INTフィボナッチ(int型N){ 場合(N == 0)戻り 0 ; もし(N == 1)リターン 1 。 戻りフィボナッチ(N-1)+フィボナッチ(N-2 )。 }
トピック2:
カエルは、クラス1レベルにジャンプすることができ、あなたはまた、レベル2に飛び乗っすることができます。カエルはどのように多くのジャンプ(別の計算異なる結果の順序)は、n級レベルの合計を求めて飛び込みました。
n個のステップ:最初のステップジャンプ、N-1個の残り;左一次ジャンプ2、N-2注文を
結果F(N)F(N-1)= + F(N-2)
N = 1、F(1)= 1
N = 2、F(2)= 2
公共 INT JumpFloor(int型N){ 場合(N == 1)リターン 1 。 もし(N == 2)リターン 2 。 戻り JumpFloor(N-1)+ JumpFloor(N-2 )。 }
トピック3:
カエルは、クラス1レベルにジャンプすることができます。また、レベル2に飛び乗っすることができます...... nはまた、ステージの上にジャンプすることができます。
カエルはどのように多くのジャンプのn級レベルの合計を求めて飛び込みました。
同様に:
F(N)= F(N-1)+ ... + F(0)
F(N-1)= F(N-2)+ ... + F(0)
F(N)-f(N-1)= F(N-1)
F(N)= 2 * F(N-1)
公共 INT JumpFloorII(INT {ターゲット) 場合(目標<= 0 ){ 戻り -1 。 } そう であれば(ターゲット== 1 ){ 返す 1 。 } 他{ リターン 2 * JumpFloorII(ターゲット- 1 )。 } }
トピック4:
私たちは、大きな長方形をカバーするために横または縦に小さな長方形の2 * 1を使用することができます。
なしnは2 * 1カバレッジの小さな長方形は、大きな長方形の2 * nを、どのように多くの方法の合計を重複しますか?
アパラチアフィボナッチ数に行っまだ(アパラチアは、フィボナッチ数を検討し注1、2参照)が推奨されます
公共 INT RectCover(INT ターゲット){ 場合(目標<= 0 ){ 戻り 0 。 } そう であれば(目標<= 2 ){ 戻りターゲット; } 他{ 戻り RectCover(ターゲット-1)+ RectCover(ターゲット-2 ); } }