ЕГЭ, ОГЭ, программирование и робототехника в Калининграде

№ 5102. Типовая задача

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

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

Например, для исходного числа 510 = 1012 результатом является число 1012 = 510, а для исходного числа 210 = 102 результатом является число 1102 = 610.

Укажите минимальное N, после обработки которого с помощью этого алгоритма получается число R, не большее, чем 26.

В ответе запишите это число в десятичной системе счисления.

for N in range(1, 30)[::-1]:
    N_bin = f'{N:b}'
    len_num = len(N_bin)
    if len_num % 2 == 0:
        mid_idx = len_num // 2
        R_bin = N_bin[:mid_idx] + '1' + N_bin[mid_idx:]
    else:
        R_bin = N_bin

    R = int(R_bin, 2)
    if R <= 26:
        print(N)
        break
Разберём это задание на бесплатном пробном занятии

Преподаватель покажет, как решать такие задачи, и подскажет, с чего начать подготовку. Группы до 8 человек, очно в Калининграде и онлайн.

Записаться на пробное занятие