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

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

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

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

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

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

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

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

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

Цикл

   ПОКА условие

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

   КОНЕЦ ПОКА

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

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

НАЧАЛО

   ПОКА нашлось(44) ИЛИ нашлось(55)

      заменить(44, 4)

      заменить(55, 5)

   КОНЕЦ ПОКА

КОНЕЦ

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

Решение руками

Мы имеем строку из двух частей — четверок слева и пятерок справа. На каждом шаге цикла мы убираем по одной четверке и пятерке. Крайнее состояние — 4455. Снова заходим в цикл и получаем 45. Больше в цикл зайти не можем.

Решение программой

s = ’4’ * 20 + ’5’ * 20

while ’44’ in s or ’55’ in s:
    s = s.replace(’44’, ’4’, 1)
    s = s.replace(’55’, ’5’, 1)

print(s)


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