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