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