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