Задание 5. Информатика. ЕГЭ. Поляков-7458
- Просмотры: 421
- Изменено: 24 ноября 2024
(ЕГЭ-2024) На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
- Строится двоичная запись числа \(N\).
- Далее эта запись обрабатывается по следующему правилу:
a) если сумма цифр двоичной записи числа чётная, то к этой записи справа дописывается \(0\), а затем два левых разряда заменяются на \(10\);
б) если сумма цифр двоичной записи числа нечётная, то к этой записи справа дописывается \(1\), а затем два левых разряда заменяются на \(11\). - Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа \(6 = 110_2\) результатом является число \(1000_2 = 8\), а для исходного числа \(4 = 100_2\) это число \(1101_2 = 13\).
Укажите максимальное число \(N\), после обработки которого с помощью этого алгоритма получается число \(R\), меньшее \(35\).
В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = bin(N)[2:]
if bn.count('1') % 2 == 0:
tmp = '10' + bn[2:] + '0'
else:
tmp = '11' + bn[2:] + '1'
return int(tmp, base=2)
#print(R(6), R(4))
a = []
for N in range(6, 1000):
if R(N) < 35:
a.append(N)
print(a[-1])
Ответ: \(24\)