Задание 23. Информатика. ЕГЭ. Шастин. 9.2.2025

Просмотры: 395
Изменено: 10 февраля 2025

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

  1. Вычти \(3\)
  2. Подели на \(2\)

Первая команда уменьшает число на экране на \(3\), вторая команда делит число на \(2\) (результат округляется в большую сторону в случае нецелого представления). Программа для исполнителя — это последовательность команд.

Сколько существует таких программ, которые исходное число \(69\) преобразуют в число \(14,\) и при этом траектория вычислений не содержит чисел \(26\) и \(30\)?

Траектория вычислений программы - это последовательность результатов выполнения всех команд программы. Например, для программы АВА при исходном числе \(100\) траектория состоит из чисел \(97, \, 49, \, 46.\)

Решение:

Python


from math import ceil

def f(n, t, deny):
    if n < t or n in deny:
        return 0
    if n == t:
        return 1
    return f(n -3, t, deny) + f(ceil(n / 2), t, deny)

print(f(69, 14, (26, 30)))

Ответ: \(5\)