πЕГЭ · ИИ-репетитор12 предметов · задания ФИПИ
Главная → Информатика → Задания №12 → Задание i12-05

Задание №12 ЕГЭ Информатика с ответом и решением

Ответ: 39

Условие

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

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

нашлось (v)

Дана программа для исполнителя Редактор:

НАЧАЛО

ПОКА нашлось (19) ИЛИ нашлось (299) ИЛИ нашлось (3999)

ЕСЛИ нашлось (19)

ТО заменить (19, 2)

КОНЕЦ ЕСЛИ

ЕСЛИ нашлось (299)

ТО заменить (299, 3)

КОНЕЦ ЕСЛИ

ЕСЛИ нашлось (3999)

ТО заменить (3999, 1)

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

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

Подсказки — как подойти к решению

  1. В теле цикла стоят три независимых условия, и каждое проверяется отдельно: за один проход может сработать не одна замена, поэтому сначала разберись, что происходит со строкой за итерацию.
  2. Определи, на сколько одинаковых цифр укорачивается строка за одну итерацию, и подели на это число исходное количество цифр, чтобы понять, что останется.
  3. На остатке выполняй замены по порядку, каждый раз проверяя условие заново; цикл закончится, когда ни одно из трёх условий не будет истинным, поэтому конечная строка может оказаться совсем короткой.

Решение

Данный алгоритм сначала заменит 19 на 2, затем 299 на 3, затем 3999 на 1. То есть на каждом шаге алгоритма удаляются шесть девяток.

Поскольку 100 девяток образуют 16 групп по 6 девяток и ещё 4 девятки, получим строку: 19999 девяток.

Последние преобразования строки: 19999 → 2999 → 39.

Ответ: 39.

Приведём другое решение на языке Python.

s = '1' + '9' * 100

while ('19' in s) or ('299' in s) or ('3999' in s):

if '19' in s:

s = s.replace('19', '2', 1)

if '299' in s:

s = s.replace('299', '3', 1)

if '3999' in s:

s = s.replace('3999', '1', 1)

print(s)

Типичные ошибки

Решить это задание в тренажёре

В тренажёре: подсказки по шагам, разбор твоей ошибки ИИ-репетитором (он не даёт готовый ответ), повторение ошибок по интервалам и общий прогресс. Все задания №12 по информатике