На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Например, для исходного числа \(12_{10} = 1100_2\) результатом является число \(1100100_2 = 100_{10},\) а для исходного числа \(4 = 100_2\) результатом является число \(100110_2 = 38_{10}.\)
Укажите максимальное число \(R,\) не превышающее \(416,\) которое может быть получено с помощью описанного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += bn[-3:] if N % 3 == 0 else f'{(N % 3 + 1) * 3:b}'
return int(bn, 2)
#print(R(12), R(4))
print(max(R(N) for N in range(4, 500) if R(N) <= 416))
Ответ: \(411\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене