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