Автомат обрабатывает натуральное число N по следующему алгоритму:
1. Строится двоичная запись числа N.
2. Запись «переворачивается», то есть читается справа налево. Если при этом появляются ведущие нули, они отбрасываются.
3. Полученное число переводится в десятичную запись и выводится на экран.
Пример. Дано число N = 58. Алгоритм работает следующим образом.
1. Двоичная запись числа N: 111010.
2. Запись справа налево: 10111 (ведущий ноль отброшен).
3. На экран выводится десятичное значение полученного числа 23.
Какое наибольшее число,
Рассмотрим действия алгоритма в обратном порядке.
10112 = 1110.
1 01102 = 2210.
10 11002 = 4410.
101 10002 = 8810.
1011 00002 = 17610.
Таким образом, наибольшее число, удовлетворяющее условию задачи
Ответ: 88.
Приведём другое решение на языке Python.
for n in range(100, 1, -1):
s = bin(n)[2:] # перевод в двоичную систему
s = str(s)
s = s[::-1]
s = s[s.find('1'):]
r = int(s, 2) # перевод в десятичную систему
if r == 13:
print(n)
break
Приведём решение Никиты Юрлова на языке Python.
for n in range(100, 1, -1):
s = bin(n)[2:]
s = s[::-1]
k = int(str(int(s)), 2)
if k == 13:
print(n)
break

