На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Например, для исходного числа \(6_{10} = 110_2\) результатом является число \(110110_2 = 54_{10},\) а для исходного числа \(4_{10} = 100_2\) это число \(10011_2 = 19_{10}.\)
Укажите максимальное число \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) ближайшее к \(130.\)
Решение:
Python
def R(N):
bn = f'{N:b}'
if N % 3 == 0:
bn += bn[-3:]
else:
bn += f'{N % 3 * 3:b}'
return int(bn, 2)
#print(R(6), R(4))
d = float('inf')
ans = 0
for x in range(4, 200):
r = R(x)
if abs(r - 130) <= d:
d = abs(r - 130)
ans = x
print(ans)
Ответ: \(31\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене