Задание 5. Информатика. ЕГЭ. Поляков-4219

Просмотры: 25
Изменено: 14 апреля 2025

(В.Н. Шубинкин) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:

  1. Строится двоичная запись числа \(N.\)
  2. К этой записи дописывается ещё три или четыре разряда по следующему правилу: если \(N\) нечётное, то слева к нему приписывается "\(1\)", а справа — "\(11\)". В противном случае слева приписывается "\(11\)", а справа "\(00\)".
    Например, \(N = 5_{10} = 101_2 \to 110111_2 = 55_{10} = R.\)

Полученная таким образом запись (в ней на три или четыре разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Укажите наибольшее число \(R,\) меньшее \(127,\) которое может быть получено с помощью описанного алгоритма. В ответ запишите это число в десятичной системе счисления.

Решение:

Python


def R(N):
    bn = f'{N:b}'
    if N % 2:
        return int('1' + bn + '11', 2)
    return int('11' + bn + '00', 2)

#print(R(5))
print(max(R(N) for N in range(1, 2000) if R(N) < 127))

Ответ: \(120\)