list = []
for n in range(0, 1000):
N = bin(n)[2:]
summa = 0
for digit in N:
summa += int(digit)
if summa % 2 == 0:
N = '10' + N
if summa % 2 != 0:
N = '11' + N
if N[-1] == '0':
N = N[:-1] + '1'
elif N[-1] == '1':
N = N[:-1] + '0'
R = int(N, 2)
if R > 120:
list.append(n)
print(min(list))
хз так наверное. Сорян, может я намудрил и лишнего понаписал
Не знаю как инвертировать крайний правый разрядСильно подозреваю что "крайний правый разряд" это последняя циферка в числе. В двоичной записи - не циферка, а бит, либо 0, либо 1. Значит если там 0 - заменяем его на 1. И наоборот. Вот мы его таким Макаром и "инвертировали"
123 -> 11[1101(1)] -> 11[1101(0)] -> 11010 -> 26
Нам надо найти первое число больше 120 у которого после инверсии правого бита будет нечётное кол-во единичных битов. Это число 123 и ответ: 26.