OpenFIPI 2.0
105
5
oge_C6A495
У исполнителя Умножитель две команды, которым присвоены номера:
1. вычти 1
2. умножь на 2
Первая из них уменьшает число на экране на 1, вторая удваивает его.
Составьте алгоритм получения из числа 3 числа 18, содержащий не более 5 команд. В ответе запишите только номера команд.
(Например, 12121 – это алгоритм:
вычти 1
умножь на 2
вычти 1
умножь на 2
вычти 1,
который преобразует число 5 в 13.)
Если таких алгоритмов более одного, то запишите любой из них.
21212
Решим обратным ходом.
Начальное: 3
Конечное: 18
Команды:
1. вычти 1
2. умножь на 2
Обратные команды (от 18 к 3):
- прибавить 1 (обратная к 1)
- разделить на 2 (обратная к 2), только если число чётное.
---
18 чётное → делим на 2 = 9 (обратная 2).
9 нечётное → прибавляем 1 = 10 (обратная 1).
10 чётное → делим на 2 = 5 (обратная 2).
5 нечётное → прибавляем 1 = 6 (обратная 1).
6 чётное → делим на 2 = 3 (обратная 2).
Обратный путь: 18 ← 9 ← 10 ← 5 ← 6 ← 3.
Обратные команды:
18→9 (2)
9→10 (1)
10→5 (2)
5→6 (1)
6→3 (2)
Прямой путь (от 3 к 18) — в обратном порядке команд:
3 → 6 (2)
6 → 5 (1)
5 → 10 (2)
10 → 9 (1)
9 → 18 (2)
Команды: 2, 1, 2, 1, 2 → **21212**.
Проверка:
3 ×2 = 6 (2)
6 –1 = 5 (1)
5 ×2 = 10 (2)
10 –1 = 9 (1)
9 ×2 = 18 (2) ✅
**Ответ: 21212**
Просмотреть отправленные ответы oge_C6A495