Автомат обрабатывает натуральное число N < 256 по следующему алгоритму:
1) Строится восьмибитная двоичная запись числа N.
2) Инвертируются все разряды исходного числа, кроме последней единицы и стоящих за ней нулей (0 заменяется на 1, 1 на 0).
3) Полученное число переводится в десятичную систему счисления.
Для какого значения N результат работы алгоритма равен 98?
for number in range(256):
binary_number = bin(number)[2:].zfill(8)
new_bin = ’’
for i in range(len(binary_number)):
if binary_number[i] == ’1’ and binary_number[i+1:].count(’1’) == 0:
new_bin += binary_number[i:]
break
else:
if binary_number[i] == ’1’:
new_bin += ’0’
else:
new_bin += ’1’
decimal_result = int(new_bin, 2)
if decimal_result == 98:
print(number)
Ответ: 158