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