На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
- Строится двоичная запись числа N.
- К этой записи дописываются ещё несколько разрядов по следующему правилу: если N чётное, то к нему справа дописывается
, если N нечетное – слева дописывается
и справа
;
- Результат переводится в десятичную систему и выводится на экран.
Пример. Дано число N = . Алгоритм работает следующим образом:
- Двоичная запись числа N:
.
- Число нечетное, следовательно слева дописываем
, справа
.
- На экран выводится число
.
В результате работы автомата на экране появилось число, большее . Для какого наименьшего значения N данная ситуация возможна?
for i in range(1, 10000):
if i % 2 == 0:
i1 = bin(i)[2:] + ’01’
else:
i1 = ’11’ + bin(i)[2:] + ’0’
if int(i1, 2) > 1021:
print(i)
break
Ответ: 127