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