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

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

1. Строится двоичная запись числа N.

2. К этой записи дописываются ещё несколько разрядов по следующему правилу:

а) если N нечётное, то к нему справа приписывается единица, а слева ноль;

б) если N чётное, то к нему справа приписывается в двоичном виде сумма цифр его двоичной записи;

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

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

mn = 10**10
a = 0
for n in range(1, 1000):
    b = bin(n)[2:]
    if n % 2 != 0:
        b = ’0’ + b + ’1’
    else:
        b += bin(b.count(’1’))[2:]
    if int(b, 2) > 250 and int(b, 2) < mn:
        mn = int(b, 2)
        a = n
print(a)

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