(В. Шубинкин) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Например, \(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\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене