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

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

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

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

Полученная таким образом запись является двоичной записью искомого числа \(R.\) Укажите минимальное число \(N,\) при вводе которого получится значение \(R\) больше, чем \(500.\) В ответе запишите это число в десятичной системе.

Решение:

Python


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

print(min(N for N in range(1, 1000) if R(N) > 500))

Ответ: \(32\)