OpenFIPI 2.0

105

5

oge_CE6EA0

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

1. умножь на 2

2. вычти 1

Первая из них увеличивает число на экране в 2 раза, вторая уменьшает его на 1.

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

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

умножь на 2

вычти 1

вычти 1

умножь на 2

вычти 1,

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

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

21212

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

Дано: начальное 9 → конечное 29.  
Команды:  
1. умножь на 2  
2. вычти 1  

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

---

29 нечётное → предыдущее 30 (обратная 2, +1).  
30 чётное → делим на 2 = 15 (обратная 1).  
15 нечётное → +1 = 16 (обратная 2).  
16 чётное → /2 = 8 (обратная 1).  
8 чётное → /2 = 4 (обратная 1) — перескочили 9?  
4 → +1=5 (обратная 2) → 5+1=6 (обратная 2) → 6/2=3 (обратная 1) — не выходит.

Попробуем иначе: обратный путь 29 → 30 → 15 → 16 → 8 (уже 4 шага назад, до 9 не дошли). 8 → +1=9. Это 5 обратных шагов:

29 ← 30 (2)  
30 ← 15 (1)  
15 ← 16 (2)  
16 ← 8 (1)  
8 ← 9 (2) — всё правильно.

Обратные команды: 2, 1, 2, 1, 2.

Прямые команды (от 9 к 29) — в обратном порядке обратных команд:  
9 → 8 (2)  
8 → 16 (1)  
16 → 15 (2)  
15 → 30 (1)  
30 → 29 (2)

Проверим:  
9 (–1) = 8 (2)  
8 (×2) = 16 (1)  
16 (–1) = 15 (2)  
15 (×2) = 30 (1)  
30 (–1) = 29 (2) ✅

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

**Ответ: 21212**

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