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

Просмотры: 600
Изменено: 1 февраля 2025

(ЕГЭ-2024) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.

  1. Строится двоичная запись числа \(N.\)
  2. Далее эта запись обрабатывается по следующему правилу:
    1. если число \(N\) чётное, то к этой записи слева дописывается 10;
    2. если число \(N\) нечётное, то к этой записи слева дописывается \(1,\) а справа дописывается \(01.\)

Полученная таким образом запись является двоичной записью искомого числа \(R.\) Например, для исходного числа \(4 = 100_2\) результатом является \(10010_2 = 18,\) а для исходного числа \(5 = 101_2\) результатом является \(110101_2 = 53.\) Укажите максимальное число \(R,\) которое может быть результатом работы алгоритма при условии, что \(N\) не больше \(12.\) В ответе запишите это число в десятичной системе счисления.

Решение:

Python


def R(N):
    bn = f'{N:b}'
    if N % 2 == 0:
        bn += '10'
    else:
        bn = '1' + bn + '01'
    return int(bn, 2)

print(max(R(N) for N in range(1, 13)))

Ответ: \(109\)