小さなサブスケールの問題解決への再帰的な問題
例:階段の登り
木登り階段先生、彼は、毎回レベル1またはレベル2に行く階段のシリーズを入力して、いくつかの異なる動きを見つけることができます
よう:階段、3の合計を、彼は常に1に行くことができ、または最初は、3つの方法の合計を二度目に行く、初めての2に行くことができ、2を行くために二度目に行きます。
入力
入力は、行の数、Nの整数正を含む各行、代表シリーズ階段、1 <= N <= 30を出力する異なる移動の数、入力ラインに対応する行が含まれ
階段の
出力
移動の異なる数、出力の入力線に対応する各行
サンプル入力
。5
。8
10
の出力例
8
34であり、
89
問題解決のアイデア:散歩に行くの後段階のN =、N-1 +ステージが移動にはステップ2に行く、N-2及び歩行階段
再帰的な式は次のとおりです。F(N)= F(N-1)+ F
(N-2) の境界条件:N = 1,1種の移動、N = 2,2種の移動
Pythonコード:
"" " リスト= [" A "" B "" C "" D "" E "" F「] I = 1。 列挙におけるIため、J(リスト[I + 1] ,. 1) : #list [2] = "K" の#if(I <lenは(リスト)): #Print(I、リスト[I]) を印刷(I、J) より小さなサブスケールの問題に再帰問題と解決 例を:階段登り 木登り階段先生を、彼は毎回レベル1またはレベル2、階段の入力系列、動きの異なる数探しに行くことができます よう:階段を、3の合計を、彼はいつものレベルに行くことができ、または最初のパス、第二の二つのパス、移動するには、2つの最初の1秒を取ることができる 3つの方法の合計。 入力 入力は、複数の行を含み、各行はNの整数正を含みます代表的な一連の階段、1 <= N <=異なる出力移動30の数の入力ラインに対応する各列 階段 出力移動の異なる数は、各行が、出力の入力ラインに対応する サンプル入力 。5 8 10 の出力例 8 34 89 いくつかの場所で同様のトピックカエルジャンプ、原理は同じです 。「」 " デフ階段(N): もし(nは== 1): リターン。1 IF(== N-2 ): リターン 2 リターン階段(1-N-)階段+(2-N-。 ) DEF ()メイン: stepNum = INT(INPUT(" ステップ数を入力してください:" )) 結果 = 階段(stepNum) 印刷(" ステップ数は次のとおりです!%D%D持って動くの種類"%(stepNum、結果)) IF(__name__ == " __main__ " ): メイン()