У исполнителя Удвоитель две команды, которым присвоены номера:
1. умножь на 2
2. прибавь 3
Первая из них увеличивает число на экране в 2 раза, вторая — прибавляет к числу 3. Составьте алгоритм получения из числа 1 числа 38, содержащий не более 5 команд. В ответе запишите только номера команд. В ответе запишите только номера команд. (Например, 12211 — это алгоритм: умножь на 2, прибавь 3, прибавь 3, умножь на 2, умножь на 2, который преобразует число 1 в 32.) Если таких алгоритмов более одного, то запишите любой из них.
Из числа 1 число 16 можно получить последовательностью команд 211. Далее будем использовать команды 21. Следовательно, искомый алгоритм: 21121.
Приведем другое решение.
Операция умножения обратима не для любого числа, поэтому, если мы будем рассматривать преобразования от числа 38 до числа 1, то восстановим программу.
Число 38 может быть получено умножением числа 19 на 2 — это команда 1.
Число 19 не может быть получено с помощью умножения на 2, следовательно, оно получено из числа 16 прибавлением числа 3 — это команда 2.
Число 16 может быть получено умножением числа 8 на 2 — это команда 1.
Число 8 может быть получено умножением числа 4 на 2 — это команда 1.
Число 4 может быть получено прибавлением числа 3 к исходному числу 1 — это команда 2.
Теперь запишем команды в обратном порядке, получим 21121.



