Задание 5. Информатика. ЕГЭ 2024. Пересдача. 04.07.2024

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

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

  1. Строится двоичная запись числа \(N\).
  2. Далее эта запись обрабатывается по следующему правилу:
    a) если сумма цифр в двоичной записи числа чётная, то к этой записи справа дописывается \(0\), а затем два левых разряда заменяются на \(10\);
    б) если сумма цифр в двоичной записи числа нечётная, то к этой записи справа дописывается \(1\), а затем два левых разряда заменяются на \(11\).
    Полученная таким образом запись является двоичной записью искомого числа \(R\).
  3. Результат переводится в десятичную запись и выводится на экран.

Например, для исходного числа \(6_{10} = 110_2\) результатом является число \(8_{10} = 1000_2\), а для исходного числа \(4_{10} = 100_2\) это число \(13_{10} = 1101_2\).

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

Решение:

Python


def R(N):
    bn = bin(N)[2:]
    if bn.count('1') % 2 == 0:
        t = '10' + bn[2:] + '0'
    else:
        t = '11' + bn[2:] + '1'

    return int(t, base=2)

a = [R(N) for N in range(28, 1000)]

print(min(a))

Ответ: \(42\)