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