Задание: У исполнителя Удвоитель две команды, которым присвоены номера:
1. прибавь 1,
2. умножь на 2.
Первая из них увеличивает число на экране на 1, вторая утраивает его.
Например, 1221 — это программа
прибавь 1
умножь на 2
умножь на 2
прибавь 1
которая преобразует число 5 в число 25.
Запишите порядок команд в программе, которая преобразует число 4 в число 37 и содержит не более пяти команд. Если таких программ несколько, напишите любую из них.
Решение: Обратите внимание на вторую команду — умножь на 2. Умножать на 2 мы можем любое число, а вот делить на 2 для получения целого числа можно только чётные.
То есть гораздо проще преобразовывать не 4 в 37, а 37 в 4, и при этом использовать противоположные команды:
1. вычти 1,
2. раздели на 3.
В это случае мы можем видеть, делится ли число на 2 или нет, если не делится — будем вычитать единицу.
37 на 2 не делится, то есть мы можем только вычесть 1, 37-1=36
36 на 2 делится, 36:2=18
18 на 2 делится, 18:2=9
9 на 2 не делится, то есть мы можем только вычесть 1, 9-1=8
8 на 2 делится, и из 8 мы можем сразу получить требуемое число, 8:2=4
Получается, что порядок команд для преобразования числа 37 в 4 — 12212
Нам же нужно было перевести 4 в 37, то есть запишем обратный порядок команд: 21221
Ответ: 21221