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