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