Задание 12. Информатика. ЕГЭ. Апробация. 05.03.2025-2

Просмотры: 869
Изменено: 10 марта 2025

Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах \(v\) и \(w\) обозначают цепочки цифр.

А) заменить (v, w).

Эта команда заменяет в строке первое слева вхождение цепочки \(v\) на цепочку \(w\). Например, выполнение команды

 заменить (111, 27)

преобразует строку \(05111150\) в строку \(0527150\).
Если в строке нет вхождений цепочки \(v\), то выполнение команды заменить (\(v, \, w\)) не меняет эту строку.

Б) нашлось (v).

Эта команда проверяет, встречается ли цепочка \(v\) в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.

Цикл

    ПОКА условие
        последовательность команд
    КОНЕЦ ПОКА

выполняется, пока условие истинно.
В конструкции

    ЕСЛИ условие
        ТО команда1
    КОНЕЦ ЕСЛИ

выполняется команда1 (если условие истинно).
В конструкции

    ЕСЛИ условие
        ТО команда1
        ИНАЧЕ команда2
    КОНЕЦ ЕСЛИ

выполняется команда1 (если условие истинно) или команда2 (если условие ложно).

Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из \(81\) идущих подряд цифр \(1?\) В ответе запишите полученную строку.

НАЧАЛО
ПОКА нашлось (111) ИЛИ нашлось (88888)
    ЕСЛИ нашлось (111)
        ТО заменить (111, 88)
        ИНАЧЕ заменить (88888, 8)
    КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ

Решение:

Python


s = '1' * 81

while '111' in s or '88888' in s:
    if '111' in s:
        s = s.replace('111', '88', 1)
    else:
        s = s.replace('88888', '8', 1)

print(s)

Ответ: \(88\)