ex exxam.ruВсе задания
практиканапиши программудинамикабез регистрации

Тренажёр: количество программ исполнителя

У исполнителя есть команды, которые меняют число, а на траекторию иногда наложены ограничения. Посчитайте, сколько существует программ, переводящих стартовое число в конечное, и выведите одно число.

Что дано

У исполнителя несколько команд, которые преобразуют число (например, «прибавить 2» и «прибавить 10»). Нужно найти число программ, переводящих стартовое число в целевое. Программа — это последовательность команд.

Динамика

Пусть — число программ, ведущих из в цель. Тогда равно сумме по числам, в которые переходит за одну команду. Если команды увеличивают число — считают от цели к меньшим; если уменьшают — от цели к большим.

Ограничения траектории

Запрещённое число просто пропускают: в него не приходит ни одного способа. Обязательное число делит путь на два участка, и число программ через него равно произведению количеств путей «старт → обязательное» и «обязательное → цель».

Как пользоваться этим режимом. Прочитайте задание и числа, напишите программу в песочнице, нажмите «Выполнить», затем «Проверить». Если не получится — откройте решение: там два эталона, их можно вставить в песочницу.

Загрузка практикума…

Частые вопросы

Как посчитать число программ программой?
Рекурсией с запоминанием: = сумма по результатам команд. Обязательное число учитывают перемножением путей на двух участках, запрещённое — обнулением.
В какую сторону считать?
Если команды уменьшают число, удобно идти «с конца» — от цели к старту. Если увеличивают — от цели к меньшим числам либо таблицей от старта к цели. Ответ от направления не зависит.
Почему ответ всё время разный?
Тренажёр каждый раз генерирует нового исполнителя: команды, старт, цель и ограничения. Поэтому программу нужно писать заново под новое задание.
Что печатать?
Одно целое число — количество подходящих программ. Проверка сверяет ваш вывод с эталонным.

Разбор задания 23Все задания