[Python] 階段を登る - 再帰分析 (超詳細)

階段を登る - 再帰的分析

あなたが階段を登っているとします。建物の屋上に到達するまでに n 歩かかります。一度に1段か2段ずつ登ることができます。建物の屋上に行くには、何通りの方法がありますか? 注: 指定された n は正の整数です。

例 1:
入力: 1
出力: 1
説明: 建物の屋上に到達する方法があります。
方法 1: 1 段階

例 2:
入力: 2
出力: 2
説明: 建物の屋上に行くには 2 つの方法があります。
方法 1: 1 ステップ + 1 ステップ
方法 2: 2 ステップ


逆方向に分析を続けると、次の結果が得られます。

入力: 3
出力: 3
説明: 建物の頂上に登るには 3 つの方法があります。
方法 1: Tier 1 + Tier 1 + Tier 1
方法 2: Tier 1 + Tier 2
方法 3: Tier 2 + Tier 1

入力: 4
出力: 5
説明: 建物の頂上に登るには 5 つの方法があります。
方法 1: ステップ 1 + ステップ 1 + ステップ 1
+ ステップ 1 方法 2: ステップ 1 + ステップ 1 + ステップ 2
方法 3: ステップ 1 + ステップ 2 + ステップ 1 方法 4
: ステップ 2 + ステップ 1 + ステップ 1
方法 5: 2段目+2段目

入力: 5
出力: 8
説明: 建物の頂上に登るには 5 つの方法があります。
方法 1: ステップ 1 + ステップ 1 + ステップ 1 + ステップ 1 + ステップ 1
方法 2: ステップ 1 + ステップ 1 + ステップ 1 + ステップ 2 方法 3
: ステップ 1 + ステップ 1 + ステップ 2 + ステップ 1
方法 4: ステップ 1 + 2 ステップ + 1 ステップ + 1 ステップ
方法 5: 1 ステップ + 2 ステップ + 2 ステップ
方法 6: 2 ステップ + 1 ステップ + 1 ステップ + 1 ステップ
方法 7: 2 ステップ + 1 ステップ + 2 ステップ
方法 8: 2 ステップ+ 2段階目 + 1段階目

上記を要約すると、次のようになります。

階段が 1 つの場合、道は 1 つあり、 f(1) = 1 で表されます。
階段が 2 つの場合、道は 2 つあり、次のように表されます。 f(2) = 2
階段が 3 つの場合、道は 3 つありますf(3) = f(2) + f(1) = 3 と表されます。
4 つの階段がある場合、5 通りあります。 f(4) = f(3) + f(2) = 5 と表されます。
階段が 5 階ある場合、次の 8 つの方法があります。 f(5) = f(4) + f(3) = 8 ... (など) 階段が n 階ある場合、次のようになり
ます
。 f(n) メソッド、次のように表されます。 f(n) = f(n-1) + f(n-2) = ?

Python コードは次のとおりです。

def digui(n):
    if n == 1:
        return 1
    if n == 2:
        return 2
    return digui(n - 1) + digui(n - 2)

print(digui(5))

操作結果:

8

フローチャート思考分析:
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_44244190/article/details/131893154