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

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

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

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

Например, двоичная запись \(1010\) числа \(10\) будет преобразована в \(110100.\) Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N)\) является двоичной записью числа — результата работы данного алгоритма. Укажите минимальное число \(N,\) для которого результат работы алгоритма будет больше \(228.\) В ответе это число запишите в десятичной системе счисления.

Решение:

Python


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

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

Ответ: \(50\)