EGEsoll - сборник решений задач из ЕГЭ

Задача 10

Автомат обрабатывает натуральное число 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

Назад