Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки символов. 1. заменить (v, w)
2. нашлось (v)
Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Редактор.
Дана программа для исполнителя Редактор:
НАЧАЛО
ПОКА нашлось (900) или нашлось(8000) или нашлось(70)
заменить(70, 8)
заменить(900, 70)
заменить(8000, 900)
КОНЕЦ ПОКА
КОНЕЦ
Известно, что на вход программы поступила строка из 71 символа. Определите минимальное четырехзначное число, которое может являться результатом работы исполнителя.
объясните как это решать

galina7257 galina7257    2   09.04.2021 02:58    316

Ответы
Агаисмаил1 Агаисмаил1  11.01.2024 23:33
Для решения этой задачи, мы должны следовать программе, описанной в условии, и последовательно выполнить команды замены входной строки. Затем мы определим результат работы исполнителя, то есть полученную строку после выполнения всех команд.

Исходная программа содержит цикл "ПОКА" с условием, проверяющим наличие трех цепочек символов: "900", "8000" и "70". В этом цикле мы выполняем три команды замены:
1. заменить цепочку "70" на цепочку "8".
2. заменить цепочку "900" на цепочку "70".
3. заменить цепочку "8000" на цепочку "900".

После выполнения всех команд, мы снова проверяем условие цикла и, если все три цепочки символов по-прежнему присутствуют в строке, выполняем команды замены снова.

Таким образом, мы должны повторять этот процесс, пока хотя бы одна из трех цепочек символов не исчезнет из строки.

Теперь давайте рассмотрим входную строку из 71 символа. Изначально строка содержит 71 символ и мы повторяем цикл, пока в строке присутствуют все три цепочки символов.

Для начала заменим цепочку "70" на цепочку "8". В исходной строке у нас есть только одно вхождение цепочки "70", поэтому после замены получим новую строку из 69 символов с цепочкой "8", вместо цепочки "70".

Далее заменим цепочку "900" на цепочку "70". Мы заменяем цепочку "900", которая присутствует в новой строке, на цепочку "70". Таким образом, получим новую строку из 68 символов с цепочкой "8" и двумя цепочками "70".

Затем заменим цепочку "8000" на цепочку "900". В новой строке есть две цепочки "70" и одна цепочка "8000", поэтому после замены получим новую строку из 67 символов с двумя цепочками "70" и одной цепочкой "900".

После этого мы снова проверяем условие цикла. Теперь в новой строке есть две цепочки "70" и одна цепочка "900", поэтому мы повторяем цикл.

В следующей итерации мы снова заменим цепочку "70" на цепочку "8", затем цепочку "900" на цепочку "70" и цепочку "8000" на цепочку "900".

После этого мы снова проверяем условие цикла и видим, что теперь в новой строке есть только одна цепочка "70" и одна цепочка "900".

Таким образом, при следующем проходе цикла, программа не выполнит ни одной команды замены и завершится.

Наконец, нам нужно найти минимальное четырехзначное число, которое может быть результатом работы исполнителя. В итоговой строке после выполнения программы у нас останутся одна цепочка "70" и одна цепочка "900".

Мы можем сформировать четырехзначное число, записав эти две цепочки подряд: "70900".

Таким образом, минимальное четырехзначное число, которое может быть результатом работы исполнителя, равно 70900.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика