Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
A) заменить (v, w).
Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды заменить (111, 27) преобразует строку 05111150 в строку 0527150. Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку.
Б) нашлось (v).
Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.
Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 136 идущих подряд цифр 9? В ответе запишите полученную строку.
|
1 2 3 4 5 6 7 8 |
НАЧАЛО ПОКА нашлось (22222) ИЛИ нашлось (9999) ЕСЛИ нашлось (22222) ТО заменить (22222, 99) ИНАЧЕ заменить (9999, 2) КОНЕЦ ЕСЛИ КОНЕЦ ПОКА КОНЕЦ |
Ответ:
ЕГЭ по информатике Основная волна (Центр) 19.06.2024 kompege.ru – задание №12
Решение:
Решение на Python — Митаева Зарина Талгатовна
|
1 2 3 4 5 6 7 |
a = '9' * 136 while '22222' in a or '9999' in a: if '22222' in a: a = a.replace('22222','99',1) else: a = a.replace('9999', '2', 1) print(a) |
Пошаговое объяснение:
-
- Сначала мы создаем строку
a, состоящую из 136 последовательных символов ‘9’:
- Сначала мы создаем строку
|
1 |
a = '9' * 136 |
Это создаст строку ‘999999…999’ (136 раз).
-
- Далее мы используем цикл
whileдля непрерывной проверки и замены подстрок вa:
- Далее мы используем цикл
|
1 |
while '22222' in a or '9999' in a: |
Этот цикл будет выполняться до тех пор, пока в строке a есть либо ‘22222’, либо ‘9999’.
-
- Внутри цикла
whileмы используем операторifдля проверки наличия ‘22222’:
- Внутри цикла
|
1 2 |
if '22222' in a: a = a.replace('22222','99',1) |
Если ‘22222’ найдено, то оно заменяется на ’99’ (первое вхождение).
-
- Если ‘22222’ не найдено, но найдено ‘9999’, то оно заменяется на ‘2’:
|
1 2 |
else: a = a.replace('9999', '2', 1) |
-
- Цикл будет продолжаться до тех пор, пока в строке
aне останется ни ‘22222’, ни ‘9999’. - Наконец, мы выводим результирующую строку
a:
- Цикл будет продолжаться до тех пор, пока в строке
|
1 |
print(a) |
Окончательный результат будет измененной строкой после всех замен, выполненных в соответствии с правилами, указанными в задаче.
Ответ: 2299
