Задание 5. Информатика. ЕГЭ. Статград. 24.10.2024-2
- Просмотры: 449
- Изменено: 24 ноября 2024
Алгоритм получает на вход натуральное число \(N\) и строит по нему новое число \(R\) следующим образом.
- Строится двоичная запись числа \(N\).
- Если число \(N\) чётное, то к двоичной записи слева дописываются цифры \(11\).
В противном случае (число \(N\) нечётное) к двоичной записи слева дописывается цифра \(1\), а справа – цифры \(10\). - Результатом работы алгоритма становится десятичная запись полученного числа \(R\).
Пример. Дано число \(N = 13\). Алгоритм работает следующим образом.
- Строим двоичную запись: \(13_{10} = 1101_{2}\) .
- Число \(13\) нечётно. Дописываем \(1\) слева и \(10\) справа, получаем \(1110110_2 = 118_{10}\) .
- Результат работы алгоритма \(R = 118.\)
Укажите максимальное число \(R\), которое может быть результатом работы данного алгоритма, при условии, что \(N\) принадлежит отрезку \([123~456~789; \, 456~789~012].\)
Решение:
Python
def R(N):
bn = bin(N)[2:]
if N % 2 == 0:
ans = '11' + bn
else:
ans = '1' + bn + '10'
return int(ans, 2)
print(max(R(456_789_011), R(456_789_012)))
Видеоразбор похожего варианта
Ответ: \(3~974~639~694\)