(А. Сражаев) На вход алгоритма подается натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
Полученная таким образом запись является троичной записью искомого числа \(R.\) Например, для исходного числа \(12 = 110_3\) результатом является число \(111 = 11010_3,\) а для исходного числа \(11 = 102_3\) результатом является число \(102 = 10210_3.\) Укажите максимальное число \(R,\) не превышающее \(200,\) которое получается с помощью описанного алгоритма. В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def conv(n):
alph='012'
ans = ''
while n:
ans = alph[n % 3] + ans
n //= 3
return ans if ans else '0'
def R(N):
tr = conv(N)
tr += tr[-2:] if N % 3 == 0 else conv((N % 3 - 1) * 3)
return int(tr, 3)
#print(R(12), R(11))
print(max(R(x) for x in range(4, 1000) if R(x) < 200))
Ответ: \(192\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене