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