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