OpenFIPI 2.0

105

5

oge_cA4029

У исполнителя Вычислитель две команды, которым присвоены номера:

1. прибавь 3

2. умножь на 2

Первая из них увеличивает число на экране на 3, вторая удваивает его.

Составьте алгоритм получения из числа 1 числа 25, содержащий не более 5 команд. В ответе запишите только номера команд.

(Например, 11221 это алгоритм:

прибавь 3

прибавь 3

умножь на 2

умножь на 2

прибавь 3

который преобразует число 4 в 43.)

Если таких алгоритмов более одного, то запишите любой из них.

12121

Решим обратным ходом.  
Начальное: 1, конечное: 25.  
Команды:  
1. прибавь 3  
2. умножь на 2  

Обратные команды (от 25 к 1):  
- вычти 3 (обратная к 1)  
- раздели на 2 (обратная к 2), только если число чётное.

---

25 — нечётное → последняя команда не могла быть умножением на 2 (иначе предыдущее было бы дробным).  
Значит, последняя команда была 1: 25 – 3 = 22.

22 — чётное, может быть получено умножением на 2: 22 / 2 = 11.  
11 — нечётное → получено командой 1: 11 – 3 = 8.  
8 — чётное → получено умножением на 2: 8 / 2 = 4.  
4 — чётное → получено умножением на 2: 4 / 2 = 2.  
2 — чётное → получено умножением на 2: 2 / 2 = 1.

---

Запишем обратный путь:  
25 ← 22 ← 11 ← 8 ← 4 ← 2 ← 1.

Но это 6 шагов (от 1 до 25 — 5 команд, от 25 до 1 — 5 обратных команд).  
Посмотрим внимательно: обратных команд действительно 5:  
25 → 22 (обр. 1)  
22 → 11 (обр. 2)  
11 → 8 (обр. 1)  
8 → 4 (обр. 2)  
4 → 2 (обр. 2)  
2 → 1 (обр. 2) — это 6-й шаг! Значит, я ошибся, путь оказался длиннее.

Попробуем короче:

1 → (1) 4  
4 → (2) 8  
8 → (2) 16  
16 → (1) 19  
19 → (1) 22 — нет 25.

Другой вариант:  
1 → 4 (1)  
4 → 7 (1)  
7 → 14 (2)  
14 → 28 (2)  
28 → 25 (1) — неверно, 28 нельзя получить из 14 за 1 шаг (28/2 = 14 можно, но у нас 14→28 (2)).

Так:  
1 → (1) 4 → (1) 7 → (2) 14 → (2) 28 → (1) 25 — не получится, 28–3=25, да, но 25 не 28–3? 28–3=25? Да, правильно. Команда вычитания? Её нет. У нас есть только **+3** и ×2.  
28 → (1) 31, а не 25. Ошибка.

Правильный короткий путь:  
25 – 3 = 22 (обратная 1)  
22 ÷ 2 = 11 (обратная 2)  
11 – 3 = 8 (обратная 1)  
8 ÷ 2 = 4 (обратная 2)  
4 – 3 = 1 (обратная 1)  

Итого обратные команды: 1, 2, 1, 2, 1 (5 команд).  
Прямой порядок: обратный путь 1←4←8←11←22←25.  
От 1 до 25:  
1 → +3=4 (1)  
4 → ×2=8 (2)  
8 → +3=11 (1)  
11 → ×2=22 (2)  
22 → +3=25 (1)  

Проверка:  
1 (+3) = 4  
4 (×2) = 8  
8 (+3) = 11  
11 (×2) = 22  
22 (+3) = 25 ✅

Команды: **1, 2, 1, 2, 1**

---

**Ответ: 12121**

Просмотреть отправленные ответы oge_cA4029