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