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