Алгоритм решения задания 14. Часть 1
Учимся решать 15 задания первого типа
Читать
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
- Строится двоичная запись числа N.
- Далее эта запись обрабатывается по следующему правилу:
- если количество значащих цифр в двоичной записи числа чётное, то к этой записи в середину дописывается 1;
- если количество значащих цифр в двоичной записи числа нечётное, то запись не изменяется.
- Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 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
