Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки символов.
заменить (v, w)
нашлось (v)
Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Редактор.
Дана программа для Редактора:

ПОКА нашлось (01) ИЛИ нашлось (02) ИЛИ нашлось (03)
заменить (01, 210)
заменить (02, 3101)
заменить (03, 2302)
КОНЕЦ ПОКА

На вход приведённой программе поступает строка, начинающаяся с нуля, а затем содержащая цифры 1, 2 и 3, расположенные в произвольном порядке. После выполнения данной программы получилась строка, содержащая 52 единицы, 33 двойки и 23 тройки. Сколько цифр 2 было в исходной строке?

31 Июл 2024 в 19:40
119 +1
0
Ответы
1

Инициализируем переменные:

количество единиц onesonesones = 1 таккакстроканачинаетсяснулятак как строка начинается с нулятаккакстроканачинаетсяснуляколичество двоек twostwostwos = 0количество троек threesthreesthrees = 0

После выполнения программы количество единиц становится равным 52, количество двоек - 33, количество троек - 23. Найдем количество цифр 2 в исходной строке.

Для этого обратимся к строке после выполнения программы. После первой команды замены, в строке не появляется новых двоек.
Таким образом, количество двоек в исходной строке было равно количеству троек в строке после программы, т.е. 33.
Значит, ответ: 33 цифры 2 было в исходной строке.

31 Июл 2024 в 19:41
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир