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