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

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

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

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

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Лошадка. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Дана программа для исполнителя Лошадка:

НАЧАЛО

   ПОКА нашлось (*2) ИЛИ нашлось (*6) ИЛИ нашлось (*7)

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

         ТО заменить (*2, *767)

      ИНАЧЕ ЕСЛИ нашлось (*6)

         ТО заменить (*6, *)

      ИНАЧЕ ЕСЛИ нашлось (*7)

         ТО заменить (*7, 3*)

      КОНЕЦ ЕСЛИ

   КОНЕЦ ПОКА

КОНЕЦ

На вход приведённой программе поступает строка, начинающаяся с символа «*», а затем содержащая 20 цифр 2, 100 цифр 6 и 42 цифры 7, расположенных в произвольном порядке. Определите сумму числовых значений цифр строки, получившейся в результате выполнения программы. Так, например, если результат работы программы представлял бы собой строку, состоящую из 50 цифр 2, то верным ответом было бы число 100.

s = ’*’ + ’2’*20 + ’6’*100 + ’7’*42
while ’*2’ in s or ’*6’ in s or ’*7’ in s:
    if ’*2’ in s:
        s = s.replace(’*2’, ’*767’, 1)
    elif ’*6’ in s:
        s = s.replace(’*6’, ’*’, 1)
    elif ’*7’ in s:
        s = s.replace(’*7’, ’3*’, 1)
print(s.count(’7’) * 7 + s.count(’6’) * 6 + s.count(’3’) * 3)

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