Автомат обрабатывает натуральное число N > 1 по следующему алгоритму.
1. Строится двоичная запись числа N.
2. Последняя цифра двоичной записи удаляется.
3. Если исходное число N было нечётным, в конец записи (справа) дописываются цифры 10, если чётным — 01.
4. Результат переводится в десятичную систему и выводится на экран.
Пример. Дано число N = 13. Алгоритм работает следующим образом.
1. Двоичная запись числа N: 1101.
2. Удаляется последняя цифра, новая запись: 110.
3. Исходное число нечётно, дописываются цифры 10, новая запись: 11010.
4. На экран выводится число 26.
Какое число нужно ввести в автомат, чтобы в результате получилось 2018?
Добавлено: 17.05.26 09:13
Решение на Python:
n = 0
r = 0
while r != 2018:
n += 1
n2 = bin(n)[2:]
n2 = n2[:-1]
n2 = n2 + "10" if n % 2 != 0 else n2 + "01"
r = int(n2, 2)
print(n) # 1009Ответ: 1009
Автор - rubygem17
None