На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Полученная таким образом запись (в ней как минимум на один разряд больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Укажите наибольшее число \(N,\) для которого результат работы данного алгоритма меньше \(1000.\) В ответе это число запишите в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
if N % 2 == 0:
return int(bn + bin(bn.count('1'))[2:], 2)
return int('1' + bn + '00', 2)
print(max([N for N in range(1, 1000) if R(N) < 1000]))
Ответ: \(256\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене