Работа с лестницами: печать, подсчет путей и рекурсия

  1. Печать лестницы.
    Этот метод печатает образец лестницы с использованием звездочек.

    def print_staircase(n):
       for i in range(1, n + 1):
           print(' ' * (n - i) + '*' * i)

    Пример использования:

    print_staircase(5)

    Выход:

       *
    
     *
    
    *
  2. Подсчет лестничных путей.
    Этот метод вычисляет количество уникальных путей, ведущих к вершине лестницы с заданным количеством ступенек. За раз можно подняться только на 1 или 2 ступеньки.

    def count_staircase_paths(n):
       if n <= 1:
           return 1
       prev, curr = 1, 1
       for _ in range(2, n + 1):
           prev, curr = curr, prev + curr
       return curr

    Пример использования:

    print(count_staircase_paths(5))

    Выход:

    8
  3. Рекурсивная лестница.
    Этот метод использует рекурсию для расчета количества уникальных путей, ведущих к вершине лестницы с заданным количеством ступенек.

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

    Пример использования:

    print(count_staircase_paths_recursive(5))

    Выход:

    8