Исполнитель Лошадка получает на вход строку цифр и преобразовывает её. Лошадка может выполнять две команды, в обеих командах 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)