Автомат обрабатывает натуральное число по следующему алгоритму.
-
Строится двоичная запись числа .
-
Все значащие цифры инвертируются (‘0’ заменяется на ‘1’, а ‘1’ на ‘0’).
-
К полученному результату слева добавляется ‘1’.
-
К двоичной записи полученного числа справа дописывается бит четности: ‘1’, если количество единиц в двоичной записи нечетно, ‘0’ - если четно.
-
Полученное в результате этих операций число переводится в десятичную систему счисления.
Полученная таким образом запись является результатом работы алгоритма: .
Укажите такое наименьшее число , для которого результат работы данного алгоритма больше числа 180. В ответе это число запишите в десятичной системе счисления.
Решение:
Решение на Python:
otv = []
for N in range(1, 1000):
R = bin(N)[2:]
R = R.replace('0', ' ')
R = R.replace('1', '0')
R = R.replace(' ', '1')
R = '1' + R
R += str(R.count('1') % 2)
R = int(R, 2)
if R > 180:
otv.append(N)
print(min(otv))
Ответ: 32
Ответ:
32
ЕГЭ · Информатика · Пробник ИМЦ СПб 2023