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

Задача . 23_2


Задача

Темы:

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


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

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

Задача

Исполнитель преобразует число на экране.
У исполнителя есть две команды, которым присвоены номера:
1. Прибавить 1
2. Умножить на 2
Первая из них увеличивает число на экране на 1, вторая увеличивает число на экране в два раза.
Программа для исполнителя – это последовательность команд.
Сколько существует программ, для которых при исходном числе 2 результатом является число 86, и при этом траектория вычислений содержит числа 31 и 43?
Траектория вычислений программы – это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 7 траектория будет состоять из чисел 8, 16, 17.

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

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