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