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

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

Ответ: 82

Условие

Автомат обрабатывает натуральное число N по следующему алгоритму:

1. Строится двоичная запись числа N без ведущих нулей.

2. Если в полученной записи единиц больше, чем нулей, то справа приписывается единица. Если нулей больше или нулей и единиц поровну, справа приписывается ноль.

3. Полученное число переводится в десятичную запись и выводится на экран.

Пример. Дано число N = 13. Алгоритм работает следующим образом.

1. Двоичная запись числа N: 1101.

2. В записи больше единиц, справа приписывается единица: 11011.

3. На экран выводится десятичное значение полученного числа 27.

Какое наименьшее число, превышающее 80, может получиться в результате работы автомата?

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

  1. Иди от порога вверх: переводи числа в двоичную запись и смотри на последнюю цифру — она должна быть такой, какую правило предписало бы по количеству единиц и нулей в оставшейся части записи.
  2. Помни, что запись строится без ведущих нулей, поэтому сравнение «единиц больше, чем нулей» считается по фактической записи числа. Отбрасывай последнюю цифру и проверяй, какая цифра должна была быть приписана.

Решение

Рассмотрим числа, большие 80, и найдем минимальное число, которое является результатом работы алгоритма.

8110 = 10100012 — не может являться результатом работы алгоритма.

8210 = 10100102 — является результатом работы алгоритма.

Ответ: 82.

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

for n in range(1, 100):

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

s = str(s)

s = s[s.find('1'):]

if s.count('1') > s.count('0'):

s += '1'

else:

s += '0'

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

if r > 80:

print(r)

break

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

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

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