🎉 Добавлен материал по 9 заданию
ЕГЭ
Задания
Задание 5
17859

Задание 17859

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

  1. Строится двоичная запись числа N.
  2. Далее эта запись обрабатывается по следующему правилу:
    • если число чётное, то к двоичной записи числа слева дописывается 10
    • если число нечётное, то к двоичной записи числа слева дописывается 1 и справа дописывается 01 Полученная таким образом запись является двоичной записью искомого числа R.
  3. Результат переводится в десятичную систему и выводится на экран.

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

Решение

a = []
for N in range(12):
    n = bin(N)[2:] # не забываем про срез
 
    if N % 2 == 0:
        n = n + '10'
    else:
        n = '1' + n + '01'
 
    R = int(n, 2)
    a.append(R)
 
print(max(a))

Разбор работы кода

  1. Создаём пустой список a для хранения значений R
  2. Цикл for N in range(12): перебирает натуральные числа N < 12
  3. bin(N)[2:] переводит N в двоичную систему и убирает приставку '0b'
  4. Определяем четность N:
    • Если чётное (N % 2 == 0), добавляем 10 в конец
    • Если нечётное, добавляем 1 в начало и 01 в конец
  5. int(n, 2) преобразует двоичную строку обратно в десятичное число R
  6. добавляем R в список a
  7. Выводим max(a) — максимальное R