階段をジャンプベース
タイトル
カエルは、クラス1レベルにジャンプすることができ、あなたはまた、レベル2に飛び乗っすることができます。カエルはどのように多くのジャンプ(別の計算異なる結果の順序)は、n級レベルの合計を求めて飛び込みました。
問題解決のためのアイデア
この問題は2つの方法があり、N番目のステップジャンプので、フィボナッチ数列の搬送方法を改変要求され、最初のものは、第二は、Nである、ジャンプアップN-1番目のステップからなります上-2レベルの2つのグレードアップ。
次いで、2つ、F(N)= Fの全て(Nに、N-1段階のアプローチへの要求および方法にN-2の2つのステップに変換される方法のN番目のステップにシーク1)+ F(N-2)、唯一の違いは、初期値は、初期値がここにあることです
F(1)= 1; F(2)= 2
あなたはボーエンを読むフィボナッチ事の安全オファーシリーズを証明する結果を達成するための二つの方法、具体的な言及保存前再帰と非再帰を使用することができます。
異常なジャンプ階段
タイトル
カエルは、クラス1レベルにジャンプすることができます。また、レベル2に飛び乗っすることができます...... nはまた、ステージの上にジャンプすることができます。カエルはどのように多くのジャンプのn級レベルの合計を求めて飛び込みました。
問題解決のためのアイデア
異常なジャンプステップは、それ以下のステップのいずれかから到達することが可能であり、唯一のN-1およびN-2の2つのステップによって到達することができないN番目のステップのステップジャンプの通常バージョンに対する変更します
すべてのF(N)= F(N-1)+ fは(N-2)+ F(N-3)+ ... + F(2)+ F(1)+1、直接最後のステップからです最初のステップは、導出が続く、N番目のステップ0にこのケースを調整しました。
F(N)= F(N-1)+ F(N-2)+ F(N-3)+ ... + F(2)+ F(1)+1、F(N + 1) = F (N)+ F(N-1)+ F(N-2)+ F(N-3)+ ... + F(2)+ F(1)+1 = 2 * F(N)
F(1)= 1、F(2)= 2 = 2 * F(1)
もちろん、あなたはまだ解決するために、再帰と非再帰的な二つの方法を使用することができます
コード
再帰
1 公共 INT JumpFloorII(int型のターゲット){ 2 であれば(ターゲット== 1 ){ 3 リターン 1 。 4 } 他{ 5 リターン 2 * JumpFloorII(ターゲット1 )。 6 } 7 }
非再帰
1 公共 INT JumpFloorII(int型のターゲット){ 2 INT [] = SaveDataを新しい INT [ターゲット+ 1 ]。 3 SaveDataを[1] = 1 。 4 のために(int型 I = 2; iは=ターゲットを<; iは++ ){ 5 SaveDataを[I] = 2 * SaveDataを[I-1 ]; 6 } 7 戻りSaveDataを[ターゲット]。 8 }