Исполнитель КАЛЬКУЛЯТОР имеет только две команды, которым присвоены номера:
1. вычти 1
2. умножь на 2
Выполняя команду номер 1, КАЛЬКУЛЯТОР вычитает из числа на экране 1, а выполняя
команду номер 2, умножает число на экране на 2. Напишите программу, содержащую не
более 4 команд, которая из числа 3 получает число 16. Укажите лишь номера команд.
Например, программа 21211 – это программа:
умножь на 2
вычти 1
умножь на 2
вычти 1
вычти 1
которая преобразует число 1 в число 0.
Умножение на число обратимо не для любого числа, поэтому, если мы пойдём от числа 16 к числу 3, тогда однозначно восстановим программу. Полученные команды будут записываться справа налево.
1) Т. к. мы хотим получить не более 4 команд, то для получения числа 16 выгодно использовать умножение: 16 = 8 * 2 (команда 2).
Применяем к числу 8 такое же рассуждение: 8 = 4 * 2 (команда 2) и к числу 4: 2 * 2 (команда 2).
Мы уже проскочили число 3, поэтому число 2 получено как 2 = 3 - 1 (команда 1).
Тогда окончательно получаем ответ: 1222

