Перейти к содержанию

Задачи

Задача про лестницы

Вы поднимаетесь по лестнице. До вершины лестницы n ступенек. Каждый раз вы можете подняться либо на 1, либо на 2 ступеньки. Сколькими различными способами вы можете взобраться на вершину?

Пример 1:

# Входные данные: n = 2
# Выход: 2
# Пояснение: Есть два способа подняться на вершину.
#  - 1 ст. + 1 ст.
#  - 2 ст.

Пример 2:

  # Входные данные: n = 3
  # Выход: 3
  # Пояснение: Есть три способа подняться на вершину.
  #  - 1 ст. + 1 ст. + 1 ст.
  #  - 1 ст. + 2 ст.
  #  - 2 ст. + 1 ст.

Ограничения: 1 <= n <= 45

Решение

def countWays(n):
  if n==1:
    return 1
  elif n==2:
    return 2
  else:
    return countWays(n-1) + countWays(n-2)

steps = 6  
ways = countWays(steps)
print("Существует " + str (ways) + " различных способов подъема по лестнице из " + str (steps) + " ступеней при подъеме по одной или двум ступенькам за раз.")