Какая строка получится в результате применения приведённой ниже
Условие
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.А) заменить (v, w).Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды заменить (555, 63) преобразует строку 12555550 в строку 1263550.Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку.Б) нашлось (v).Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется. Цикл ПОКА условие последовательность команд КОНЕЦ ПОКА выполняется, пока условие истинно. В конструкции ЕСЛИ условие ТО команда1 ИНАЧЕ команда2 КОНЕЦ ЕСЛИ выполняется команда1 (если условие истинно) или команда2 (если условие ложно). Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 1000 идущих подряд цифр 8? В ответе запишите полученную строку. НАЧАЛО ПОКА нашлось (999) ИЛИ нашлось (888) ЕСЛИ нашлось (888) ТО заменить (888,
-
ИНАЧЕ заменить (999,
-
КОНЕЦ ЕСЛИ КОНЕЦ ПОКА КОНЕЦ
Ответ
Ответ и полный разбор откроются после входа
Посмотреть ответРешение по шагам
Как рассуждать
Решение. Данный алгоритм сначала заменит все триады из восьмёрок на девятки. Заметим, что 1000 восьмёрок образуют 333 триады и остаётся ещё одна восьмёрка. То есть получится 333 девятки и одна восьмёрка.
Затем алгоритм заменит 9 первых девяток на три восьмёрки, а затем заменит эти три восьмёрки обратно на одну девятку. То есть за четыре прохода цикла из начала строки убирается 8 девяток.
Таким образом, из строки, содержащей 333 девятки, уберется 8 · 41 = 328 девяток, и останется 5 девяток и одна восьмёрка. Три первых девятки будут заменены на одну восьмёрку, и останется строка
Осталось ещё 3 шага
Примечание. Рекомендуем сравнить эту задачу с…
Исходные данные в этих задачах «симметричные»…
else: s = s.replace('999', '8', 1)print(s)…
Бесплатно · займёт минуту