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

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

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

Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды заменить (121, 3) преобразует строку 112112 в строку 1312.

Если в строке нет вхождений последовательности v, то выполнение команды не изменяет исходную строку.

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

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

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

   НАЧАЛО

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

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

            ТО заменить (0111, 101)

         ИНАЧЕ

            заменить (01, 10)

         КОНЕЦ ЕСЛИ

      КОНЕЦ ПОКА

   КОНЕЦ

На вход программы, приведенной выше, поступает строка, начинающаяся с цифры ”0” , а затем содержащая 216 цифр ”1”. В результате выполнения программы получается некоторое число, записанное в двоичной системе счисления. Определите сумму цифр в восьмеричной записи получившегося числа.

В ответе запишите сумму цифр восьмеричной записи, записанную в десятичной системе счисления.

s = ’0’ + 216*’1’
while ’01’ in s:
    if ’0111’ in s:
        s = s.replace(’0111’, ’101’, 1)
    else:
        s = s.replace(’01’, ’10’, 1)

s = int(s, 2)
s = oct(s)[2:]
sm = sum([int(i) for i in s])
print(sm)

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