ЕГЭ ПО ИНФОРМАТИКЕ 11 КЛАСС PYTHON Помогите пожалуйста с решением задачи
Автомат обрабатывает десятичное натуральное число N по следующему алгоритму.
1. Строится двоичная запись числа,
2. К полученному числу справа дописывается 0, если в числе единиц больше, чем нулей, и 1 в обратном случае.
3. Действие 2 повторяется еще раз.
4. Из середины двоичного числа убирается 2 разряда, если количество разрядов получилось четным, и 3 разряда, если нечетным.
5. Полученное число переводится в десятичную систему счисления и является результатом работы автомата.
Сколько различных значений может получиться в результате работы, если автомат обработает все значения N, которые принадлежат отрезку [100; 200] ?
По дате
По рейтингу
12345678910111213141516171819202122
st = set()
for n in range(100, 201):
r = bin(n)[2:]
if r.count('1') > r.count('0'):
r += '0'
else:
r += '1'
if r.count('1') > r.count('0'):
r += '0'
else:
r += '1'
if len(r) % 2 == 0:
r = r[:len(r)//2 - 1] + r[len(r)//2 + 1:]
else:
r = r[:len(r) // 2 - 1] + r[len(r) // 2 + 2:]
st.add(int(r, 2))
print(len(st)) Видео по теме