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