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

Просмотры: 230
Изменено: 1 февраля 2025

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

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

Найдите наименьшее число \(N,\) после обработки которого автомат выдаст результат больший \(2019.\)

Решение:

Python


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

for N in range(10, 2020):
    if R(N) > 2019:
        print(N)
        break

Ответ: \(512\)