На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1) Строится двоичная запись числа N.
2) Если N нечетное, то в конец полученной записи (справа) дописывается 0, в начало 1; если N четное в конец и начало дописывается по две единицы.
3) Результат переводится в десятичную систему и выводится на экран.
Укажите наибольшее число, меньшее 126, которое может являться результатом работы автомата Например, N = =
. Число четное, следовательно, добавляем по две единицы по краям, получается
.
res = []
for number in range(1000):
binary_number = bin(number)[2:]
if number % 2 != 0:
binary_number = ’1’ + binary_number + ’0’
else:
binary_number = ’11’ + binary_number + ’11’
decimal_result = int(binary_number, 2)
if decimal_result < 126:
res.append(decimal_result)
print(max(res))
Ответ: 123