Олимпиадный тренинг

Задача . 23_5


Задача

Темы:

Шаблон рекурсивной функции


# Рекурсивная функция
def rec(now, last, step): 
    if now == last:    # Проверка, что получили нужное число
        return 1
    if now > last:    # Проверка, что превысили нужное число
        return 0
# Вызов рекурсивной функции с учетом заданных команд изменения числа и условия неповторения одинаковых команд
    return rec(now + ???, last, step) + ???  

# Основная программа 
print(rec(???))  # Вызов рекурсивной функции с начальными значениями 

Задача

Исполнитель преобразует число на экране.
У исполнителя есть три команды, которым присвоены номера:

1. Прибавить 1
2. Прибавить 2
3. Умножить на 2


Первая из них увеличивает число на экране на 1, вторая увеличивает число на 2, третья увеличивает число в 2 раза.
Программа для исполнителя – это последовательность команд.
Сколько существует программ, для которых при исходном числе 5 результатом является число 20, и при этом в программах нет двух одинаковых команд, идущих подряд?

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя