Задача #2218
Алгоритмы
(Е.Джобс) Автомат принимает на вход число и преобразует его по следующему алгоритму.
1) Число переводится в троичную систему счисления,
2) Полученное число преобразуется по следующему алгоритму:
a. Если число четное, то слева дописывается 2, справа значение младшего разряда, увеличенного в 2 раза (в троичной системе счисления),
b. Если число нечетное, то справа дописывается 2, слева удвоенное значение старшего разряда (в троичной системе счисления),
3) Полученное троичное число переводится в десятичную систему счисления и выводится на экран.
Укажите минимальное значение большее 100, которое может являться результатом работы автомата.
Войдите, чтобы история ответов и статистика сохранялись.
Решение
Ответ
131
Видео по задаче
def tr(x):
s = ''
while x > 0:
s = str(x % 3) + s
x //= 3
return s
for n in range(1, 100):
s = tr(n)
if n % 2 == 0:
s = '2' + s + tr(2*(n % 3))
else:
s = tr(2*int(s[0])) + s + '2'
r = int(s, 3)
if r > 100:
print(r)
# выбираем минимальное выведенное число