Информатика. ЕГЭ
Задания для подготовки
Задачи разных лет из реальных экзаменов, демо-вариантов, сборников задач и других источников
Задание 5. Информатика. ЕГЭ. Поляков-5447
- Просмотры: 272
- Изменено: 12 апреля 2025
(В. Шубинкин) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
- Строится двоичная запись числа \(N.\)
- Если количество единиц в этой записи чётно, стирается ведущая единица. В противном случае из записи числа убираются все нули, а в конец приписывается \(1.\)
- Над новой записью снова производятся действия, описанные в пункте 2.
- Результат переводится в десятичную систему и выводится на экран.
Например, \(N = 5_{10} = 101_2 \to 1 \to 11_2 = 3_{10} = R.\) Сколько существует чисел \(N,\) не превосходящих \(1000,\) таких что \(R = 7?\)
Решение:
Python
def R(N):
bn = f'{N:b}'
bn = bin(int(bn[1:], 2))[2:] if bn.count('1') % 2 == 0 else bn.replace('0', '') + '1'
bn = bin(int(bn[1:], 2))[2:] if bn.count('1') % 2 == 0 else bn.replace('0', '') + '1'
return int(bn, 2)
#print(R(5))
print(len([N for N in range(1, 1001) if R(N) == 7]))
Ответ: \(120\)
Обсуждение задания
Здесь пока нет ни одного комментария. Будьте первым!


