Задание 5. Информатика. ЕГЭ. Статград. 24.10.2024-2

Просмотры: 449
Изменено: 24 ноября 2024

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

  1. Строится двоичная запись числа \(N\).
  2. Если число \(N\) чётное, то к двоичной записи слева дописываются цифры \(11\).
    В противном случае (число \(N\) нечётное) к двоичной записи слева дописывается цифра \(1\), а справа – цифры \(10\).
  3. Результатом работы алгоритма становится десятичная запись полученного числа \(R\).

Пример. Дано число \(N = 13\). Алгоритм работает следующим образом.

  1. Строим двоичную запись: \(13_{10} = 1101_{2}\) .
  2. Число \(13\) нечётно. Дописываем \(1\) слева и \(10\) справа, получаем \(1110110_2 = 118_{10}\) .
  3. Результат работы алгоритма \(R = 118.\)

Укажите максимальное число \(R\), которое может быть результатом работы данного алгоритма, при условии, что \(N\) принадлежит отрезку \([123~456~789; \, 456~789~012].\)

Решение:

Python


def R(N):
    bn = bin(N)[2:]
    if N % 2 == 0:
        ans = '11' + bn
    else:
        ans = '1' + bn + '10'
    return int(ans, 2)

print(max(R(456_789_011), R(456_789_012)))

Видеоразбор похожего варианта

Ответ: \(3~974~639~694\)