再帰 - クライミング階段カエルのジャンプに類似

小さなサブスケールの問題解決への再帰的な問題

例:階段の登り
木登り階段先生、彼は、毎回レベル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__ " ):
    メイン()

 

おすすめ

転載: www.cnblogs.com/an-wl/p/12383286.html