Решение: Редактор и сумма цифр
Исполнитель «Редактор» получает на вход строку цифр. Команда «заменить (v, w)» заменяет первое слева вхождение цепочки $v$ на цепочку $w$, а команда «нашлось (v)» проверяет наличие цепочки $v$ в текущей строке. Дана программа:
НАЧАЛО
ПОКА нашлось (52) ИЛИ нашлось (1122) ИЛИ нашлось (2222)
ЕСЛИ нашлось (52)
ТО заменить (52, 11)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (2222)
ТО заменить (2222, 5)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (1122)
ТО заменить (1122, 25)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
На вход программе поступает строка, начинающаяся с цифры «5», а затем содержащая $n$ цифр «2», где $3 < n < 10000$. Определите наименьшее значение $n$, при котором сумма цифр в строке, получившейся после выполнения программы, равна $37$.
Решение по шагам
4 шагаДля каждого значения $n$ формируем исходную строку $5$ и $n$ цифр $2$, затем буквально выполняем команды программы: заменяем первое найденное вхождение $52$, затем первое найденное вхождение $2222$, затем первое найденное вхождение $1122$.
После завершения цикла вычисляем сумму цифр получившейся строки и перебираем значения $n$ в порядке возрастания, начиная с $4$.
При первом подходящем значении получается сумма цифр $37$; меньшие значения $n$ этого результата не дают.
Минимальное подходящее значение параметра равно $78$.
Где здесь ошибаются
За один проход заменяют все вхождения цепочки, хотя команда заменяет только первое слева.
Не учитывают, что после одной замены в той же итерации могут сработать следующие условия.
Останавливают цикл после одного прохода вместо проверки условия заново.