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

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

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

  1. Строится двоичная запись числа \(N.\)
  2. Если \(N\) нечетное, то в конец полученной записи (справа) дописывается \(0,\) в начало \(1;\) если \(N\) четное в конец и начало дописывается по две единицы.
  3. Результат переводится в десятичную систему и выводится на экран.
    Например, \(N = 14_{10} = 1110_2.\) Число четное, следовательно, добавляем по две единицы по краям, получается \(11111011_2 = 251_{10}\)

Укажите наибольшее число, меньшее \(126,\) которое может являться результатом работы автомата.

Решение:

Python


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


#print(R(14))
print(max(R(N) for N in range(1, 300) if R(N) < 126))

Ответ: \(123\)