Задание 5. Информатика. ЕГЭ. Шастин. 19.01.2025
- Просмотры: 765
- Изменено: 2 февраля 2025
(Д. Бахтиев) На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
- Строится двоичная запись числа \(N\).
- Далее эта запись обрабатывается по следующему правилу.
- если количество значащих нулей в этой записи чётно, то к ней слева и справа дописываются по одной единице.
- иначе, если количество значащих нулей в этой записи нечётно, то слева к этой записи дописывается \(10\).
- Полученная таким образом запись является двоичной записью искомого числа \(R\).
- Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(6 = 110_2\) результатом является число \(10110_2 = 22.\)
Укажите максимальное число \(R\), меньшее \(100,\) которое могло получиться в результате выполнения данного алгоритма.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn = '1' + bn + '1' if bn.count('0') % 2 == 0 else '10' + bn
return int(bn, 2)
print(max([R(x) for x in range(1, 1000) if R(x) < 100]))
Ответ: \(97\)