Задача к ЕГЭ по информатике на тему «исполнитель «редактор» – известная строка» №6

Исполнитель Редактор получает на вход строку цифр и преобразует её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.

А) заменить (v, w).

Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды

заменить (111, 27)

преобразует строку 05111150 в строку 0527150.

Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку.

Б) нашлось (v).

Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.

Цикл

   ПОКА условие

      последовательность команд

   КОНЕЦ ПОКА

выполняется, пока условие истинно.

Дана программа для редактора:

НАЧАЛО

   ПОКА нашлось (12) ИЛИ нашлось (333)

      ЕСЛИ нашлось (12)

      заменить (12, 3)

      ИНАЧЕ

      заменить (333, 3)

   КОНЕЦ ПОКА

КОНЕЦ

Какая строка получится в результате применения приведённой выше программы к строке, состоящей из 40 подряд идущих троек чисел 123? В ответе запишите полученную строку.

Решение 1

Благодаря замене 12 на 3 сначала все числа 123 перейдут в 33. А значит будет 40 * 2 = 80 троек.

За счет замены 333 на 3 за каждый шаг цикла из строки убирается 2 тройки пока находятся три тройки.

Переломный момент наступает когда строка становится 3333 и цикл срабатывает последний раз. Получается строка 33 и программа в цикл больше не зайдёт.

Решение 2

a = ’123’ * 40
while ’12’ in a or ’333’ in a:
    a = a.replace(’12’, ’3’, 1)
    a = a.replace(’333’, ’3’, 1)
print(a)

Ответ: 33
Оцените статью
Я решу все!