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

