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

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

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

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

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

Решение:

Python


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

print(min(R(N) for N in range(1, 200) if R(N) > 40))

Ответ: \(43\)