На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Например, для исходного числа \(13_{10} = 1101_2,\) результатом является число \(1110100_2 = 116_{10},\) а для исходного числа \(6_{10} = 110_2\) это число \(1111011_2 = 123_{10}.\)
Укажите наибольшее число \(R,\) не превышающее \(113,\) которое может быть результатом работы данного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
if N % 2 == 0:
bn = '11' + bn + '11'
else:
bn = '1' + bn + '00'
return int(bn, 2)
#print(R(13), R(6))
print(max([R(N) for N in range(1, 113) if R(N) <= 113]))
Ответ: \(108\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене