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