Задание №5 — Алгоритмы и программирование
У исполнителя Вычислитель две команды, которым присвоены номера:
1. прибавь 3
2. умножь на 3
Первая из них увеличивает число на экране на 3, вторая утраивает его.
Составьте алгоритм получения из числа 1 числа 72, содержащий не более пяти команд. В ответе запишите только номера команд.
(Например, 21211 – это алгоритм:
умножь на 3
прибавь 3
умножь на 3
прибавь 3
прибавь 3,
который преобразует число 2 в число 33.)
Если таких алгоритмов более одного, то запишите любой из них.
Правильный ответ
11212
Пояснение
Решение.
Нам необходимо составить алгоритм для получения из числа числа , используя не более пяти команд. Доступны команды: 1 (прибавь ) и 2 (умножь на ).
Для решения таких задач удобнее идти от обратного: от конечного числа к начальному числу . При этом команды заменяются на противоположные: вместо «прибавь » будем использовать «вычти », а вместо «умножь на » — «раздели на ».
Шаг 1. Рассмотрим число . Оно делится на . Попробуем применить деление (обратная команда 2):
. (Это была бы команда 2, если идти от к ).
Шаг 2. Рассмотрим число . Оно также делится на . Снова применим деление (обратная команда 2):
. (Это еще одна команда 2).
Шаг 3. Число не делится на . Значит, мы можем только вычитать (обратная команда 1):
. (Это команда 1).
Шаг 4. Число не делится на . Снова вычитаем (обратная команда 1):
. (Это команда 1).
Шаг 5. Число не делится на . Вычитаем (обратная команда 1):
. Мы ушли в минус, а нам нужно получить . Значит, этот путь не подходит. Вернемся на шаг назад.
Попробуем другой путь. На шаге 2 вместо деления попробуем вычитание:
1) (команда 2)
2) (команда 1)
3) (команда 2)
4) (команда 1)
5) (команда 1)
Мы получили число ровно за 5 шагов. Теперь запишем эти команды в прямом порядке (от к ):
1. (Начало) Число
2. Прибавь (команда 1):
3. Прибавь (команда 1):
4. Умножь на (команда 2):
5. Прибавь (команда 1):
6. Умножь на (команда 2):
Последовательность команд: 11212.
Ответ: 11212
Источник: ФИПИ