Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах 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 было в исходной строке?
количество единиц (ones) = 1 (так как строка начинается с нуля)количество двоек (twos) = 0количество троек (threes) = 0
После выполнения программы количество единиц становится равным 52, количество двоек - 33, количество троек - 23. Найдем количество цифр 2 в исходной строке.
Для этого обратимся к строке после выполнения программы. После первой команды замены, в строке не появляется новых двоек. Таким образом, количество двоек в исходной строке было равно количеству троек в строке после программы, т.е. 33. Значит, ответ: 33 цифры 2 было в исходной строке.
Инициализируем переменные:
количество единиц (ones) = 1 (так как строка начинается с нуля)количество двоек (twos) = 0количество троек (threes) = 0После выполнения программы количество единиц становится равным 52, количество двоек - 33, количество троек - 23. Найдем количество цифр 2 в исходной строке.
Для этого обратимся к строке после выполнения программы. После первой команды замены, в строке не появляется новых двоек.
Таким образом, количество двоек в исходной строке было равно количеству троек в строке после программы, т.е. 33.
Значит, ответ: 33 цифры 2 было в исходной строке.