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