Присоединиться

Информатика·Выполнение алгоритмов для исполнителей·11 класс

Дана программа для редактора:НАЧАЛО ПОКА НЕ нашлось (00) заменить (01

Условие

Исполнитель Редактор получает на вход строку цифр и преобразует её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.А) заменить (v, w).Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды заменить (111, 27) преобразует строку 05111150 в строку 0527150.Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку.Б) нашлось (v).Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется. Дана программа для редактора:НАЧАЛО ПОКА НЕ нашлось (00) заменить (01, 220) заменить (02, 1013) заменить (03, 120) КОНЕЦ ПОКАКОНЕЦ Известно, что в исходной строке A было ровно два нуля — на первом и на последнем месте, а после выполнения данной программы получилась строка B, содержащая 13 единиц и 18 двоек.Какое наибольшее количество цифр могло быть в строке A?

Ответ

16

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

  1. Как рассуждать

    Решение. Приведём решение на языке Python.A = []for x in range(20,0,-1): for y in range(20,0,-1): for z in range(20,0,-1): num = '0' + '1'*x + '2'*y + '3'*z +'0' while '00' not in num: num = num.replace('01','220',1) num = num.replace('02','1013',1) num = num.replace('03','120',1) if num.count('1') == 13 and num.count('2') == 18: A.append(x + y + z)print(max(A) +

Осталось ещё 1 шаг — откроются после входа:

  • Шаг 2
Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Выполнение алгоритмов для исполнителей»