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