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

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

Ответ: 29

Условие

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число следующим образом.

1. Строится двоичная запись числа N.

2. К этой записи дописываются справа ещё два разряда по следующему правилу: если N чётное, в конец числа (справа) дописываются два нуля, в противном случае справа дописываются две единицы. Например, двоичная запись 1001 числа 9 будет преобразована в 100111.

Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью числа — результата работы данного алгоритма.

Укажите минимальное число N, для которого результат работы алгоритма будет больше 115. В ответе это число запишите в десятичной системе счисления.

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

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

Решение

Переведем число 11510 в двоичную систему: 11510 = 11100 112. На выходе должно быть число большее, чем 11510. Уберём из числа 11100 112 два правых разряда. Получим число 111002 = 28. Это число не подходит, поскольку, если следовать алгоритму, получится число 112 меньше 115.. Возьмём число 2910 = 111012. Следуя алгоритму, проверим это число на чётность. Число 29 является нечётным, следовательно, добавим к двоичной записи числа 29 две единицы справа. Получим 11101112 = 11910.

Таким образом, минимальное число N, для которого результат работы алгоритма будет больше 115, равняется 29.

Ответ: 29.

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

for n in range(1, 100):

s = bin(n)[2:] # перевод в двоичную систему

if n % 2 == 0:

s += "00"

else:

s += "11"

r = int(s, 2) # перевод в десятичную систему

if r > 115:

print(n)

break

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

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

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