На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
- Строится двоичная запись числа N.
- Далее эта запись обрабатывается по следующему правилу:
а) если число N чётно, то справа приписывается «01»;
б) если число N нечётно, то к этой записи слева и справа приписывается единица.
Полученная таким образом запись является двоичной записью искомого числа R. - Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 12 = результатом является число = 49, а для исходного числа 5 = результатом является число = 27.
Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается число R, большее 156. В ответе запишите это число в десятичной системе счисления.
Решение:
Решение на Python:
otv = []
for n in range(1, 200):
r = bin(n)[2:]
if n % 2 == 0:
r = r + '01'
else:
r = '1' + r + '1'
r = int(r, 2)
if r > 156: otv.append(n)
print(min(otv))
Ответ: 33
Ответ:
33