OpenFIPI 2.0

105

5

oge_cA3AA1

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

1. умножь на 2

2. прибавь 3

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

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

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

умножь на 2

прибавь 3

прибавь 3

умножь на 2

умножь на 2

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

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

21121

Решим обратным ходом.

Дано: начальное 1 → конечное 38.  
Команды:  
1. умножь на 2  
2. прибавь 3  

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

---

38 — чётное → можно разделить на 2: 38 / 2 = 19 (обратная 1)  
19 — нечётное, значит, получено не умножением на 2, а прибавлением 3.  
Значит, 19 – 3 = 16 (обратная 2)  
16 — чётное: 16 / 2 = 8 (обр. 1)  
8 — чётное: 8 / 2 = 4 (обр. 1)  
4 — чётное: 4 / 2 = 2 (обр. 1)  
2 — чётное: 2 / 2 = 1 (обр. 1)  

Обратный путь: 38 ← 19 ← 16 ← 8 ← 4 ← 2 ← 1 (6 обратных шагов), но нам нужно ≤ 5 команд (т.е. ≤ 5 обратных шагов).

Нужен другой путь: возможно, последней командой была не 1 (умножение), а 2 (прибавление 3).  
Тогда 38 – 3 = 35 (обратная 2).  
35 – 3 = 32 (обратная 2).  
32 / 2 = 16 (обратная 1).  
16 / 2 = 8 (обратная 1).  
8 / 2 = 4 (обратная 1).  
4 / 2 = 2 (обратная 1) — всё равно длиннее.

Попробуем 38 – 3 = 35 (обр.2) → 35 – 3 = 32 (обр.2) → 32 / 2 = 16 (обр.1) → 16 / 2 = 8 (обр.1) → 8 / 2 = 4 (обр.1) → 4–3=1 (обр. 2).  
Обратные: 2,2,1,1,1,2 — 6 шагов.

Изменим: 38 – 3 = 35 (2) → 35 – 3 = 32 (2) → 32 / 2 = 16 (1) → 16 / 2 = 8 (1) → 8 – 3 = 5 (2) → 5 – 3 = 2 (2) → 2 / 2 = 1 (1) — 7 шагов.

Попробуем другой вариант: 38 / 2 = 19 (1) → 19 – 3 = 16 (2) → 16 / 2 = 8 (1) → 8 / 2 = 4 (1) → 4 – 3 = 1 (2).  
Обратные: 1,2,1,1,2 — ровно 5 шагов.

Проверим:  
1 → (1) 2  
2 → (1) 4  
4 → (1) 8  
8 → (2) 11 — не 16. Ошибка! В обратном порядке перепутана последовательность.

Правильно выпишем обратный путь:  
38 (обратная 1) → 19  
19 (обратная 2) → 16  
16 (обратная 1) → 8  
8 (обратная 1) → 4  
4 (обратная 2) → 1  

Обратные команды: 1, 2, 1, 1, 2.  
Прямой путь (от 1 к 38) — в обратном порядке команд:  
1 (+3) = 4 (2)  
4 (×2) = 8 (1)  
8 (×2) = 16 (1)  
16 (+3) = 19 (2)  
19 (×2) = 38 (1)

Последовательность команд: 2, 1, 1, 2, 1 → **21121**.

Проверка:  
1 (+3) = 4 ✅  
4 (×2) = 8 ✅  
8 (×2) = 16 ✅  
16 (+3) = 19 ✅  
19 (×2) = 38 ✅

**Ответ: 21121**

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