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

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

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

  1. Строится двоичная запись числа \(N.\)
  2. Полученная запись переворачивается (записывается слева направо).
  3. В полученной записи дублируется младший (правый) бит.

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

Например, для числа \(11\) алгоритм будет выполняться следующим образом:

  1. \(11 = 1011_2.\)
  2. \(1011 \to 1101_2.\)
  3. \(11011_2 = 27_{10}\)

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

Решение:

Python


def R(N):
    bn = f'{N:b}'
    bn = bn[::-1]
    bn += bn[-1]
    return int(bn, 2)

for N in range(1, 100):
    if R(N) > 99:
        print(N)
        break

Ответ: \(39\)