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