Задание 5. Информатика. ЕГЭ. Поляков-7887
- Просмотры: 43
- Изменено: 21 февраля 2025
На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
- Строится двоичная запись числа \(N.\)
- Далее эта запись обрабатывается по следующему правилу:
- а) если число чётное, то к двоичной записи числа слева дописывается \(10;\)
- б) если число нечётное, то к двоичной записи числа слева дописывается \(1\) и справа дописывается \(01.\)
Полученная таким образом запись (в ней на два или три разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Например, для исходного числа \(4 = 100_2\) результатом является число \(20 = 10100_2,\) а для исходного числа \(5 = 101_2\) это число \(53 = 110101_2.\) Укажите максимальное число \(R,\) которое может быть результатом работы данного алгоритма, при условии, что \(N\) не больше \(1234567.\) В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
if bn[-1] == '0':
bn = '10' + bn
else:
bn = '1' + bn + '01'
return int(bn, 2)
print(max(R(x) for x in range(1_000_000, 1234568)))
Ответ: \(13326877\)