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