5 номер. Преобразование записей чисел
Алгоритм обработки числа
(О. Лысенков) Автомат принимает на вход целое неотрицательное число и преобразует его по следующему алгоритму.
1) Число переводится в четверичную систему счисления.
2) Полученное число преобразуется по следующему алгоритму:
A) Если число чётное, то слева дописывается 12, справа значение младшего разряда четверичной записи, увеличенное в 3 раза и записанное в четверичной системе счисления.
B) Если число нечётное, то справа дописывается 21, слева 13.
3) Полученное четверичное число переводится в десятичную систему счисления и выводится на экран.
Укажите минимальное значение большее 50, которое может являться результатом работы автомата.
Подсказка
Сначала выполните все шаги для одного N, сохраняя строку после каждого изменения. Затем уточните, что требуется выбрать: N, R или количество значений.
Решение
def perevod(n): if n == 0: return '0' s = '' while n != 0: s = str(n % 4) + s n //= 4 return sdef f(n): s = perevod(n) if n % 2 == 0: s = '12' + s + perevod(int(s[-1],4) * 3) else: s = '13' + s + '21' return int(s,4)mi = float('inf')for i in range(0,1000): if f(i) > 50: mi = min(f(i),mi)print(mi)