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