На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом:
1. Строится двоичная запись числа N.
2. К этой записи дописываются справа ещё несколько разрядов по следующим правилам:
— если число N четное, то справа к этой записи дописывается 1 и слева также дописывается 1;
— если число N нечетное, то справа к этой записи дописывается 10, а слева — 1.
Полученная таким образом запись является двоичной записью искомого числа R. Укажите наибольшее число R, не превышающее 65, которое могло получиться в результате работы алгоритма.
В ответе запишите число в десятичной системе счисления.
Приведём решение на языке Python.
otv = []
for n in range(1000):
s = bin(n)[2:]
if n%2==0:
s = '1' + s[2:] + '1'
else:
s = '1' + s[2:] + '10'
r = int(s,2)
if r < 65:
otv.append(n)
print(max(otv))
Ответ: 62.

