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