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

Задача . 23_3


Задача

Темы:

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


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

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

Задача

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

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

Программа для исполнителя – это последовательность команд.
Сколько существует программ, для которых при исходном числе 12 результатом является число 40, и при этом траектория вычислений содержит число 26 и 30, но не содержит число 25?

Траектория вычислений программы – это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 7 траектория будет состоять из чисел 8, 11, 12.


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

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