OpenFIPI 2.0
105
5
oge_A76DA2
У исполнителя Вычислитель две команды, которым присвоены номера:
1. умножь на 4
2. вычти 2
Первая из них увеличивает число на экране в 4 раза, вторая уменьшает его на 2.
Составьте алгоритм получения из числа 3 числа 30, содержащий не более 5 команд. В ответе запишите только номера команд.
(Например, 11221 – это алгоритм:
умножь на 4
умножь на 4
вычти 2
вычти 2
умножь на 4,
который преобразует число 1 в 48.)
Если таких алгоритмов более одного, то запишите любой из них.
12212
Рассмотрим задачу.
Дано: начальное 3, конечное 30.
Команды:
1. умножь на 4
2. вычти 2
Нужно не более 5 команд.
---
Попробуем обратный ход от 30 к 3:
Обратные команды:
- если была команда 1 (умножь на 4), то обратная: разделить на 4 (только если число делится на 4).
- если была команда 2 (вычти 2), то обратная: прибавить 2.
30 + 2 = 32 (обратная 2).
32 делится на 4 → 32 / 4 = 8 (обратная 1).
8 + 2 = 10 (обратная 2).
10 + 2 = 12 (обратная 2).
12 / 4 = 3 (обратная 1).
Обратный путь:
30 ← 32 ← 8 ← 10 ← 12 ← 3
Обратные команды:
30→32 (2)
32→8 (1)
8→10 (2)
10→12 (2)
12→3 (1)
Теперь прямой путь (от 3 до 30) в обратном порядке команд:
3 → 12 (1)
12 → 10 (2)
10 → 8 (2)
8 → 32 (1)
32 → 30 (2)
Проверим:
3 (1) ×4 = 12
12 (2) −2 = 10
10 (2) −2 = 8
8 (1) ×4 = 32
32 (2) −2 = 30 ✅
**Ответ: 12212**
Просмотреть отправленные ответы oge_A76DA2