На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Например, для исходного числа \(11_{10} = 102_3\) результатом является число \(10222_3 = 107_{10},\) а для исходного числа \(12_{10} = 110_3\) это число \(111002_3 = 353_{10}.\)
Укажите максимальное число \(N,\) после обработки которого с помощью этого алгоритма получается число \(R,\) не превышающее \(250.\)
Решение:
Python
def conv(n):
alph = '012'
ans = ''
while n:
ans = alph[n % 3] + ans
n //= 3
return ans
def R(n):
tr = conv(n)
if n % 3 == 0:
tr = '1' + tr + '02'
else:
tr += conv(n % 3 * 4)
return int(tr, 3)
#print(R(11), R(12))
print(max(N for N in range(1, 300) if R(N) <= 250))
Ответ: \(26\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене