У исполнителя Удвоитель две команды, которым присвоены номера:
1. умножь на 2
2. прибавь 3
Первая из них увеличивает число на экране в 2 раза, вторая прибавляет к числу 3.
Составьте алгоритм получения из числа 1 числа 38, содержащий не более 5 команд. В ответе запишите только номера команд.
(Например, 12211 –– это алгоритм:
умножь на 2
прибавь 3
прибавь 3
умножь на 2
умножь на 2
который преобразует число 1 в 32.)
Если таких алгоритмов более одного, то запишите любой из них.
РЕШЕНИЕ
Будем идти от числа 38 к числу 1 применяя противоположные команды, так мы будем видеть когда промежуточный результат можно без остатка поделить на 2.
Тогда мы имеем команды:
1. Раздели на 2
2. Вычти 3
1) 38 можно без остатка поделить на 2:
38 / 2 = 19
Команда 1
2) 19 нельзя без остатка поделить на 2, вычитаем:
19 - 3 = 16
Команда 2
3) 16 можно без остатка поделить на 2:
16 / 2 = 8
Команда 1
4) 8 можно без остатка поделить на 2:
8 / 2 = 4
Команда 1
5) 4 - 3 = 1 - искомый результат
Команда 2
Переписываем номера команд снизу вверх , так как шли в обратном порядке - 21121 (не больше 5 команд, как и необходимо по условию)
ОТВЕТ 21121