Задание: Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
А) заменить (v,w).
Б) нашлось (v).
Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 200 идущих подряд цифр 7? В ответе запишите полученную строку.
НАЧАЛО
ПОКА нашлось (333) ИЛИ нашлось (777)
ЕСЛИ нашлось (333)
ТО заменить (333, 7)
ИНАЧЕ заменить (777, 3)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
Решение: Рассмотрим алгоритм на примере строки, состоящей из 10-ти подряд идущих цифр 7:
7777777777
1. Условие цикла (пока нашлось 777) выполняется, условие "Если нашлось 333" не выполняется, значит первые три семёрки в строке меняются тройкой:
37777777
2. Условие цикла (пока нашлось 777) выполняется, условие "Если нашлось 333" не выполняется, значит первые три семёрки в строке меняются тройкой:
337777
3. Условие цикла (пока нашлось 777) выполняется, условие "Если нашлось 333" не выполняется, значит первые три семёрки в строке меняются тройкой:
3337
4. Условие цикла (пока нашлось 333) выполняется, условие "Если нашлось 333" выполняется, значит первые три тройки в строке меняются семёркой:
77
Цикл завершен.
Таким образом, из строки, содержащей 10 семёрок получилась строка, содержащая 2 семёрки. То есть каждое повторение вышеописанного алгоритма удаляет из строки 8 семёрок.
По заданию дана строка, состоящая из 200 цифр 7. Когда цикл 24 раза удалит из строки 8 семёрок, в ней останется 8 семёрок (24*8=192, 8 осталось). Рассмотрим, что произойдёт с оставшимися семёрками:
77777777
377777
3377
Строка примет вид 3377, после чего условие цикла перестанет выполняться.
Ответ: 3377