Задание 5. Информатика. ЕГЭ. Поляков-6590
- Просмотры: 15
- Изменено: 4 апреля 2025
(Е. Джобс) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
- Строится двоичная запись числа \(N.\)
- К этой записи дописываются разряды по следующему правилу. Если сумма двоичных разрядов кратна \(4,\) слева дописывается \(10,\) иначе \(11.\)
- К полученной записи справа дописывается еще один разряд – \(0,\) если полученное двоичное число нечетное, \(1\) в обратном случае.
- Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для числа \(13 = 1101_2\) получается \(1111010_2 = 122,\) для числа \(10 = 1010_2\) получается \(1110101_2 = 117.\) Укажите максимальное число \(N,\) для которого значение \(R\) не превышает \(250.\) В ответе это число запишите в десятичной системе счисления.
Решение:
Python
def R(N):
bn = f'{N:b}'
bn = '10' + bn if sum(int(x) for x in bn) % 4 == 0 else '11' + bn
bn += '0' if bn[-1] == '1' else '1'
return int(bn, 2)
print(max(N for N in range(1, 250) if R(N) <= 250))
Ответ: \(30\)