Задание №23 ЕГЭ: Динамическое программирование (Количество программ) (ID 4851) — Ответ, условие и разбор | СмартКИМ
Не нашли свое задание? Попробуйте КИМСканер для быстрого поиска решения по фото или тексту: Открыть КИМСканер
СмартКИМ ЕГЭ Информатика
Каталог №23 Вариант ЕГЭ Разбор в СмартКИМ

Задание №23: Динамическое программирование (Количество программ)

Задача #4851 Формат ЕГЭ 2026 1 первичный балл
Основные типы и прототипы задания №23:
Количество программ преобразования чисел Обязательные и избегаемые этапы траектории

Условие задания

(Б. Михлин) Исполнитель К22 преобразует число, записанное на экране. У исполнителя есть три команды, которым присвоены номера:
1. Прибавь 1
2. Прибавь 4
3. Получи большее число Фибоначчи
Первая из них увеличивает число на экране на 1, вторая увеличивает число на 4. Третья команда получает ближайшее число из ряда Фибоначчи, которое большее, чем число на экране (например, для числа 3 будет получено 5, а для числа 7 будет получено 8). Программа для исполнителя – это последовательность команд. Сколько существует программ, которые преобразуют исходное число 1 в число 13?
Примечание. Числа Фибоначчи – это ряд чисел, в котором первое и второе число равны единице, а каждое следующее число равно сумме двух предыдущих чисел ряда: 1, 1, 2, 3, 5, 8, 13, ...
Ответ: 825

Шаблон решения на Python

# === Задание 23: Динамическое программирование (Количество программ) ===
def f(cur, target, avoid=None):
    if cur > target or (avoid and cur == avoid): return 0
    if cur == target: return 1
    return f(cur + 1, target, avoid) + f(cur * 2, target, avoid)

# Траектория из A в B (через обязательную точку):
print("Количество программ:", f(2, 12) * f(12, 30))

Подготовка к ЕГЭ по информатике на 85+ баллов

В интерактивном тренажёре СмартКИМ вы можете решать варианты на время, писать и запускать код Python в браузере, работать с таблицами Excel и отслеживать свой классный рейтинг.