Информатика. ЕГЭ
Задания для подготовки
Задачи разных лет из реальных экзаменов, демо-вариантов, сборников задач и других источников
Задание 5. Информатика. ЕГЭ. Поляков-6029
- Просмотры: 303
- Изменено: 5 апреля 2025
(И. Митин) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:
- Каждая цифра числа \(N\) записывается с помощью \(4\)-битного двоичного кода. В конец кода каждой цифры добавляется бит чётности так, чтобы количество единиц в расширенной записи стало чётным.
- Далее к этой записи справа дописывается \(0,\) а два левых разряда заменяются на \(1.\)
- Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Например, для исходного числа \(13\) двоичные коды цифр: \(1 = 0001_2,\) \(3 = 0011_2.\) С добавленными битами чётности: \(00011\) и \(00110,\) результат шага \(1:\) \(0001100110.\) Заменяем два левых разряда на \(1\) и добавляем справа \(0:\) \(1011001100_2 = 716.\)
Укажите минимальное \(N,\) после обработки которого с помощью этого алгоритма получится \(674890.\)
Решение:
Python
def R(N):
ns = [f'{int(x):04b}' for x in str(N)]
ans = ''.join(s + str(s.count('1') & 1) for s in ns)
return int('1' + ans[2:] + '0', 2)
#print(R(13))
for N in range(14, 10_000):
if R(N) == 674890:
print(N)
break
Ответ: \(5482\)
Обсуждение задания
Здесь пока нет ни одного комментария. Будьте первым!


