Давайте разберём задачу шаг за шагом. Нужно из числа 2 получить число 26 за не более чем 5 команд, использующих два вида операций:
- Умножь на 2 (обозначим команду как 1)
- Прибавь 3 (обозначим команду как 2)
Цель: составить последовательность команд, преобразующую число 2 в число 26, используя не более 5 команд.
Подход к решению:
Обратимся к обратной задаче — попробуем понять, как из числа 26 можно прийти к 2, делая обратные операции:
- Если число чётное, предположим, что его получили умножением — значит, исходное было число /2.
- Если число нечётное, предположим, что к нему прибавили 3, значит, исходное число — это число -3.
Это полезно, потому что работать проще в обратную сторону, чтобы определить правильную последовательность.
Работаем в обратную сторону:
- Исходное число: 26
- Проверяем, чётное ли число? Да, 26 — чётное. Тогда, предположим, его получили умножением на 2, значит предыдущие число — 26 / 2 = 13.
- Теперь, число 13 — нечётное, предположим, что его получили прибавкой 3 (следовательно, было 13 - 3 = 10).
- Следующее число: 10 — чётное, деваем его обратно, делим на 2: 10 / 2 = 5.
- Число 5 — нечётное, меняем его, предполагая прибавку 3: 5 - 3 = 2.
Теперь мы пришли к исходному числу 2.
Обратный путь: 26 → 13 → 10 → 5 → 2
Обратные операции:
- Чётное число → делим на 2 (обратное умножению)
- Нечётное число → вычитаем 3 (обратное прибавке 3)
Записываем эти шаги и переводим их в команды, которые выполняем вперёд:
- Исходное число: 2 (начинаем)
- Идём вперёд: 2 → умножить на 2 → 4
- 4 → прибавить 3 → 7
- 7 → умножить на 2 → 14
- 14 → прибавить 3 → 17
- 17 → умножить на 2 → 34, что превышает 26, такое решение не подходит, тоже четырёх команд — подойдёт, их ровно 4.
Обратимся к другой последовательности, чтобы получить 26 за не более 5 команд.
Расмотрим более короткий путь:
Обратные шаги (найденные ранее): 26 → 13 → 10 → 5 → 2
Теперь снова вперёд, делая операции по этим шагам, начиная с 2:
- 2 → умножить на 2 → 4
- 4 → прибавить 3 → 7
- 7 → умножить на 2 → 14
- 14 → прибавить 3 → 17
- 17 → умножить на 2 → 34 (превышает 26), это не подходит.
Пробуем другой путь:
Итак, попробуем другой порядок:
Обратный путь: 26 → 13 → 10 → 5 → 2
Допустим, делаю наоборот:
- 2 → прибавить 3 → 5
- 5 → умножить на 2 → 10
- 10 → прибавить 3 → 13
- 13 → умножить на 2 → 26
Это соответствует последовательности команд:
2 - прибавь 3 - умножь на 2 - прибавь 3 - умножь на 2
Запишем командами:
2 (начальное число)
2. +3 (команда 2)
3. *2 (команда 1)
4. +3 (команда 2)
5. *2 (команда 1)
Отсюда последовательность команд:
2 2 1 2 1
В коде:
Команды:
- 2 (прибавь 3)
- 1 (умножь на 2)
- 2 (прибавь 3)
- 1 (умножь на 2)
Проверим:
2 +3=5
52=10
10+3=13
132=26 — всё правильно, получаем 26 за 4 команды.
Ответ:
2 1 2 1
То есть, командами:
- 2 (прибавь 3)
- 1 (умножь на 2)
- 2 (прибавь 3)
- 1 (умножь на 2)
Если нужно, можно записать более компактно, без пробелов: 2121.
Итог:
Ответ — последовательность команд: 2121