Информатика. ЕГЭ
Задания для подготовки
Задачи разных лет из реальных экзаменов, демо-вариантов, сборников задач и других источников
Задание 5. Информатика. ЕГЭ. Поляков-8457
- Просмотры: 3020
- Изменено: 27 декабря 2025
(А. Сражаев) На вход алгоритма подается натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
- Строится троичная запись числа \(N.\)
- Далее эта запись обрабатывается по следующему правилу:
- а) если число \(N\) кратно \(3,\) то к этой записи справа дописываются две её последние цифры;
- б) если число \(N\) не кратно \(3,\) то остаток от деления на \(3\) сначала уменьшается на единицу, полученное число умножается на \(3,\) а затем результат умножения переводится в троичную запись и дописывается в конец числа.
Полученная таким образом запись является троичной записью искомого числа \(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\)
Обсуждение задания
Здесь пока нет ни одного комментария. Будьте первым!


