Форум » Выполнение и анализ алгоритмов для исполнителей » ЕГЭ-12 №241 » Ответить

ЕГЭ-12 №241

timsc1: ЕГЭ-12 №241 241) Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки символов. заменить (v, w) нашлось (v) Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепоч-ки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли це-почка v в строке исполнителя Редактор. Дана программа для Редактора: НАЧАЛО ПОКА нашлось (>1) ИЛИ нашлось (>2) ИЛИ нашлось (>3) ЕСЛИ нашлось (>1) ТО заменить (>1, 22>3) КОНЕЦ ЕСЛИ ЕСЛИ нашлось (>2) ТО заменить (>2, 2>) КОНЕЦ ЕСЛИ ЕСЛИ нашлось (>3) ТО заменить (>3, 11>2) КОНЕЦ ЕСЛИ КОНЕЦ ПОКА КОНЕЦ На вход приведённой ниже программе поступает строка, начинающаяся с символа «>», а затем содержащая 14 цифр 1, 20 цифр 2 и 25 цифр 3, расположенных в произвольном порядке. Определите сумму числовых значений цифр строки, получившейся в результате выполнения про-граммы. Так, например, если результат работы программы представлял бы собой строку, состоящую из 50 цифр 4, то верным ответом было бы число 200. Сделал программу на питоне: s = '>' + '1'*14 + '2'*20 + '3'*25 while ">1" in s or '>2' in s or '>3' in s: if ">1" in s: s = s.replace( ">1", "22>3") if ">2" in s: s = s.replace( ">2", "2>") if ">3" in s: s = s.replace( ">3", "11>2") print(s) ss=0 for i in range(len(s)): a=s.isdigit() ss+=a print(ss) выдаёт ответ 165, а в сборнике ответ 252. Не пойму, в чём ошибка. Вроде делал по шаблону. Помогите найти ошибку пожалуйста.

Ответов - 2

Поляков: timsc1 пишет:выдаёт ответ 165, а в сборнике ответ 252. [pre2] s = ">" + 14*"1" + 20*"2" + 25*"3" while ">1" in s or ">2" in s or ">3" in s: if ">1" in s: s = s.replace( ">1", "22>3", 1 ) if ">2" in s: s = s.replace( ">2", "2>", 1 ) if ">3" in s: s = s.replace( ">3", "11>2", 1 ) print( sum( map(int, list(s[:-1]))) )[/pre2]

timsc1: Поляков Спасибо!



полная версия страницы