Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих
заменить (v, w)
нашлось (v)
Дана программа для исполнителя Редактор:
НАЧАЛО
ПОКА нашлось (19) ИЛИ нашлось (299) ИЛИ нашлось (3999)
ЕСЛИ нашлось (19)
ТО заменить (19, 2)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (299)
ТО заменить (299, 3)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (3999)
ТО заменить (3999, 1)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
Какая строка получится в результате применения приведённой ниже программы к строке, состоящей
Данный алгоритм сначала
Поскольку
Последние преобразования строки: 19999 → 2999 → 39.
Ответ: 39.
Приведём другое решение на языке Python.
s = '1' + '9' * 100
while ('19' in s) or ('299' in s) or ('3999' in s):
if '19' in s:
s = s.replace('19', '2', 1)
if '299' in s:
s = s.replace('299', '3', 1)
if '3999' in s:
s = s.replace('3999', '1', 1)
print(s)

