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