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

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

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

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

(ЕГЭ-2022) Исполнитель преобразует число, записанное на экране. У исполнителя есть две команды, которым присвоены номера:
1. Вычти 2
2. Найди целую часть от деления на 2
Первая команда уменьшает число на экране на 2, вторая заменяет число на экране на целую часть от деления числа на 2. Сколько существует программ, для которых при исходном числе 28 результатом является число 1, и при этом траектория вычислений содержит число 10?
Ответ: 36

Шаблон решения на 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 и отслеживать свой классный рейтинг.