Menu
CoddyTech

Climbing Stairs

やさしい動的計画法再帰python iconjava iconcpp iconc iconjs icon+10

あなたはn段の階段の一番下にいます。1回の移動で1段または2段上ります。移動の順序が異なる場合、上り方は別々に数えるため、1, 2と2, 1は2通りです。関数はnを受け取り、頂上まで到達する異なる方法の数を返します。

関数

climbStairs(n: integer) → integer
ninteger
階段の段数
戻り値integer
段階 n に到達する、1 段階と 2 段階からなる異なる並びの数

制約

  • 1 ≤ n ≤ 45
  • 答えは符号付き32ビット整数に収まります。n = 45 の場合、1836311903 になります。

例

入力
n = 3
出力
3
説明
3段の階段は、1, 1, 1、1, 2、または2, 1のように上ることができるので、3通りの方法があります。

lock icon提出時に隠しテスト+13件

challenge icon

発展問題

いくつかの段が壊れていて、そこには決して立てないとしたらどうでしょうか?漸化式はどのように変わり、壊れた段の数え方はどうなりますか?

コードをリセット
def climbStairs(n):
    # ここにコードを書いてください
テストケース

ケース1

ケース2

入力

n = 3

期待値

3