Задание 5. Информатика. ЕГЭ. Поляков-1746

Просмотры: 21
Изменено: 6 апреля 2025

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

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

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

Решение:

Python


def R(N):
    bn = f'{N:b}'
    bn += '1' if bn.count('1') > bn.count('0') else '0'
    return int(bn, 2)

print(max(R(N) for N in range(1, 100) if R(N) < 43))

Ответ: \(40\)