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