Решение: Редактор: замена цепочек цифр
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Команда «заменить (v, w)» заменяет в строке первое слева вхождение цепочки v на цепочку w. Команда «нашлось (v)» проверяет, встречается ли цепочка v в строке, не изменяя её. Цикл выполняется, пока условие истинно.
К строке, состоящей из 84 идущих подряд цифр 8, применяют программу: пока нашлось (1111) или нашлось (8888), если нашлось (1111), заменить (1111, 8), иначе заменить (8888, 11). Какая строка получится в результате?
Решение по шагам
4 шагаИзначально строка содержит 84 цифры 8. Пока в ней нет цепочки $1111$, программа заменяет первое слева вхождение $8888$ на $11$.
Когда в строке появляется цепочка $1111$, условие первой ветви становится истинным, и первое вхождение $1111$ заменяется на одну цифру $8$. Далее снова выполняется поиск $1111$, а при его отсутствии — замена $8888$ на $11$.
Последовательное выполнение этих действий до тех пор, пока в строке остаются $1111$ или $8888$, даёт итоговую строку $11888$.
В строке $11888$ нет ни четырёх последовательных единиц, ни четырёх последовательных восьмёрок, поэтому цикл завершается.
Где здесь ошибаются
Заменять все вхождения цепочки за один шаг вместо первого слева.
Проверять наличие $8888$ раньше наличия $1111$.
Продолжать цикл после исчезновения обеих искомых цепочек.