Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих
А) заменить (v, w).
Эта команда заменяет в строке первое слева вхождение
Если в строке нет вхождений
Б) нашлось (v).
Эта команда проверяет, встречается ли
исполнителя при этом не изменяется.
Цикл
ПОКА условие
последовательность команд
КОНЕЦ ПОКА
выполняется, пока условие истинно.
В конструкции
ЕСЛИ условие
ТО команда1
ИНАЧЕ команда2
КОНЕЦ ЕСЛИ
выполняется команда1 (если условие истинно) или команда1 (если условие ложно)
Дана программа для Редактора:
НАЧАЛО
ПОКА нашлось (01) ИЛИ нашлось (02) ИЛИ нашлось (03)
заменить (01, 20)
заменить (02, 120)
заменить (03, 302)
КОНЕЦ ПОКА
КОНЕЦ
Известно, что исходная строка начинается с
Заметим, что не важно, в каком порядке стоят
Подстрока 01 заменяется на 20, а подстрока 02 заменяется на 120. Значит, после работы алгоритма над подстрокой
Ответ: 32.
Приведём решение Михаила Глинский на языке Python.
s='0'+'1'*12+'2'*15+'3'*17
while '01' in s or '02' in s or '03' in s :
s=s.replace('01','20',1)
s=s.replace('02','120',1)
s=s.replace('03','302',1)
print(s.count('1'))

