На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
Полученная таким образом запись (в ней на один разряд больше, чем в записи исходного числа \(N\)) является двоичной записью искомого числа \(R.\) Какое наибольшее число, меньшее \(90,\) может быть получено в результате работы автомата?
Решение:
Python
def R(N):
bn = f'{N:b}'
bn += '1' if bn.count('1') > bn.count('0') else '0'
return int(bn, 2)
print(max(R(N) for N in range(1, 100) if R(N) < 90))
Ответ: \(88\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене