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

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

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

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

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

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

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

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

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

Ц икл

   П ОК А усл овие

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

   К ОН ЕЦ ПО КА

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

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

Н АЧА ЛО

   П ОК А нашлось(123)

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

   К ОН ЕЦ ПО КА

К ОНЕ Ц

Сколько троек будет содержать строка, которая получится в результате применения приведённой выше программы к строке, состоящей из 30  идущих подряд чисел 123  ? В ответе запишите только число — количество троек в полученной строке.

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

Программа на каждом шаге преобразовывает 123  в 33  . То есть каждая часть строки 123  становится 33  . Раз таких чисел было 30  подряд, то каждая из них превратилась в две тройки и в результате получилось 30⋅2 = 60  троек.

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

s = ’123’ * 30

while ’123’ in s:
    s = s.replace(’12’, ’3’, 1)

count_threes = s.count(’3’)
print(count_threes)


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