OpenFIPI 2.0

5

5

1157D2

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

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

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

Например, для числа 13 двоичная запись 1101 преобразуется в запись 11110111.

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

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

228

a = []
for n in range(1, 1000):
    b = bin(n)[2:]
    if n % 2 == 0:
        b = '1' + b + '0'
    else:
        b = '11' + b + '11'
    r = int(b, 2)
    if r > 225:
        a.append(r)
print(min(a))

Просмотреть отправленные ответы 1157D2