Исполнитель Редактор получает на вход строку цифр и преобразует её. Редактор может выполнять две команды, в обеих
А) заменить (v, w).
Эта команда заменяет в строке первое слева вхождение
Если в строке нет вхождений цепочки v, то выполнение команды
Б) нашлось (v).
Эта команда проверяет, встречается ли
Цикл
ПОКА условие
последовательность команд
КОНЕЦ ПОКА
выполняется, пока условие истинно.
Найдите сумму цифр в строке, которая получится в результате применения приведённой ниже программы к строке, состоящей
НАЧАЛО
ПОКА нашлось (999) ИЛИ нашлось (222)
ЕСЛИ нашлось (222)
ТО заменить (222, 9)
ИНАЧЕ
заменить (999, 2)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
Данный алгоритм сначала заменит девять первых девяток на три двойки, после чего эти три двойки будут заменены на одну девятку, после чего первые три девятки заменятся на одну двойку. После этого алгоритм будет действовать по следующему принципу: сначала он заменит шесть следующих после двойки девяток на две двойки, далее алгоритм заменит три двойки на одну девятку, после чего три первых девятки заменятся на одну двойку. Таким образом, алгоритм будет заменять двойку и следующие за ней восемь девяток на одну двойку, пока не останется
Ответ: 9.
Приведем решение Михаила Глинского.
Для нахождения ответа используется программа на языке Питон, выполняющая заданные преобразования строки:
s='9'*65
while ('999' in s) or ('222' in s) :
if ('222' in s):
s=s.replace('222','9',1)
else:
s=s.replace('999','2',1)
print(s)
Приведем программу Дмитрия Волненко.
Программа после преобразования строки находит сумму ее цифр:
s = '9'*65
while '999' in s or '222' in s:
if '222' in s:
s = s.replace('222', '9',1)
else:
s = s.replace('999', '2')
print(sum(map(int,s)))

