Задача к ЕГЭ по информатике на тему «Запись числа в двоичной системе счисления» №11

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

  1. Строится двоичная запись числа N  .
  2. К этой записи дописывается (дублируется) последняя цифра.
  3. Затем справа дописывается 0  , если в двоичном коде числа N  чётное число единиц, и 1  , если нечётное.
  4. К полученному результату справа дописывается 1  , если количество единиц получившегося числа нечётно, иначе дописывается 0  .

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

for n in range(1, 1000):
    r = bin(n)[2:]
    r += r[-1]
    if bin(n)[2:].count(’1’) % 2 == 0:
        r += ’0’
    else:
        r += ’1’
    if r.count(’1’) % 2 == 0:
        r += ’0’
    else:
        r += ’1’
    if int(r, 2) > 120:
        print(n)
        break

Ответ: 15
Оцените статью
Я решу все!