Исполнитель Редактор получает на вход строку цифр и преобразует её. Редактор может выполнять две команды, в обеих
А) заменить (v, w).
Эта команда заменяет в строке первое слева вхождение
Если в строке нет вхождений
Б) нашлось (v).
Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.
Цикл
ПОКА условие
последовательность команд
КОНЕЦ ПОКА
выполняется, пока условие истинно.
Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из
НАЧАЛО
ПОКА нашлось (1111)
заменить (1111, 22)
заменить (222, 1)
КОНЕЦ ПОКА
КОНЕЦ
Данный алгоритм сначала заменит восемь первых единицы на четыре двойки, а затем заменит эти четыре двойки на одну единицу и двойку. То есть, восемь подряд идущих единиц заменяются на
Далее алгоритм заменит
(Заметим, что команда
Ответ: 12.
Приведём другое решение на языке Python.
s = '1' * 98
while '1111' in s:
s = s.replace('1111', '22', 1)
s = s.replace('222', '1', 1)
print(s)

