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