Здравствуйте. Задача №5, на сайте № 1750
Автомат обрабатывает натуральное число N < 256 по следующему алгоритму:
1) Строится восьмибитная двоичная запись числа N.
2) Инвертируются все разряды исходного числа, кроме последней единицы и стоящих за ней нулей (0 заменяется на 1, 1 на 0).
3) Полученное число переводится в десятичную систему счисления.
Для какого значения N результат работы алгоритма равен 211?
На сайте ответ 45, но и программным способом решала, и в ручную, но получается 44. Просьба пояснить, что делаю не так. Спасибо.
Вариант 1.
for n in range(1,256):
s = bin(n)[2:]
if len(s) < 8:
s = '0' * (8 - len(s)) + s
s = s.replace('1', '*')
s = s.replace('0', '1')
s = s.replace('*', '0')
if int(s, 2) == 211:
print(n)
Вариант 2.
for n in range(1, 256):
s = "{:08b}".format(n)
s = s.replace('1', '*')
s = s.replace('0', '1')
s = s.replace('*', '0')
if int(s,2) == 211:
print( n )