Автомат обрабатывает натуральное число по следующему алгоритму:
- Строится двоичная запись числа
.
- В конец двоичной записи добавляются две цифры:
— если
четное,
— если
нечетное.
- Результат переводится в десятичную систему, затем от числа отнимается минимальное количество бит, которым можно закодировать
чисел.
- Полученное число выводится на экран.
Пример. Дано число Алгоритм работает следующим образом:
- Двоичная запись числа
- В конец добавляются цифры
, так как
— четное число. Получается
.
- Результат переводится в десятичную систему.
. От
отнимается число
, так как это минимальное количество бит, которым можно закодировать
чисел.
- На экран выводится 221.
Укажите минимальное , при котором автомат выведет на экран число
.
for i in range(10000):
s = bin(i)[2::]
if i % 2 == 0:
s += ’11’
else:
s += ’00’
x = int(s, 2) - len(bin(i-1)[2::])
# n - натуральные
# Например, n = 5
# 000 = 1; 001 = 2; 010 = 3;
# 011 = 4; 100 = 5
if x == 126:
print(i)
Ответ: 32