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