(О. Лысенков) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Укажите максимальное число \(N,\) для которого результатом работы алгоритма является наименьшее число \(R,\) превышающее \(320.\) В ответе это число запишите в десятичной системе счисления.
Решение:
Python
def conv(n):
alph='0123'
ans = ''
while n:
ans = alph[n % 4] + ans
n //= 4
return ans
def R(N):
q = conv(N)
s = sum(int(x) for x in q)
if s % 3 == 0:
q = q.replace('0', 'x').replace('2', '0').replace('x', '2')
q = '32' + q
else:
q += '33'
q = q[0] + '10' + q[3:]
return int(q, 4)
mr = min(R(N) for N in range(1, 10000) if R(N) > 320)
print(max(N for N in range(1, 10000) if R(N) == mr))
Ответ: \(31\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене