Задание 5. Информатика. ЕГЭ. Поляков-3522
- Просмотры: 16
- Изменено: 13 апреля 2025
(Е. Джобс) Автомат обрабатывает десятичное натуральное число \(N\) по следующему алгоритму:
- Строится двоичная запись числа \(N.\)
- К этой записи справа дописывается \(0,\) если число нечетное, и слева \(1\) в обратном случае.
- Если единиц в двоичном числе получилось четное количество, справа дописывается \(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\)