Автомат обрабатывает натуральное число N по следующему алгоритму:
1. Строится двоичная запись числа N без ведущих нулей.
2. Если в полученной записи единиц больше, чем нулей, то справа приписывается единица. Если нулей больше или нулей и единиц поровну, справа приписывается ноль.
3. Полученное число переводится в десятичную запись и выводится на экран.
Пример. Дано число N = 13. Алгоритм работает следующим образом.
1. Двоичная запись числа N: 1101.
2. В записи больше единиц, справа приписывается единица: 11011.
3. На экран выводится десятичное значение полученного числа 27.
Какое наименьшее число,
Рассмотрим числа,
10110 = 11001012 — не может являться результатом работы алгоритма.
10210 = 11001102 — не может являться результатом работы алгоритма.
10310 = 11001112 — является результатом работы алгоритма.
Ответ: 103.
Приведём другое решение на языке Python.
for n in range(1, 100):
s = bin(n)[2:] # перевод в двоичную систему
s = str(s)
s = s[s.find('1'):]
if s.count('1') > s.count('0'):
s += '1'
else:
s += '0'
r = int(s, 2) # перевод в десятичную систему
if r > 100:
print(r)
break

