Решение:
Наша цель — получить число 28, начиная с 0, используя не более 6 команд. Команды: 1 (прибавь 2) и 2 (умножь на 3).
Рассмотрим возможные варианты, работая в обратном порядке от 28:
- Если последнее действие было «умножь на 3», то предыдущее число было 28/3 (не целое).
- Если последнее действие было «прибавь 2», то предыдущее число было 28 - 2 = 26.
Продолжаем работать с 26:
- Если последнее действие было «умножь на 3», то предыдущее число было 26/3 (не целое).
- Если последнее действие было «прибавь 2», то предыдущее число было 26 - 2 = 24.
Продолжаем работать с 24:
- Если последнее действие было «умножь на 3», то предыдущее число было 24/3 = 8.
- Если последнее действие было «прибавь 2», то предыдущее число было 24 - 2 = 22.
Продолжаем работать с 8 (нам нужно получить 0, поэтому будем идти к 0):
- Если последнее действие было «умножь на 3», то предыдущее число было 8/3 (не целое).
- Если последнее действие было «прибавь 2», то предыдущее число было 8 - 2 = 6.
Продолжаем работать с 6:
- Если последнее действие было «умножь на 3», то предыдущее число было 6/3 = 2.
- Если последнее действие было «прибавь 2», то предыдущее число было 6 - 2 = 4.
Продолжаем работать с 2:
- Если последнее действие было «умножь на 3», то предыдущее число было 2/3 (не целое).
- Если последнее действие было «прибавь 2», то предыдущее число было 2 - 2 = 0.
Итак, мы нашли последовательность действий в обратном порядке: 0 → 2 → 6 → 8 → 24 → 26 → 28.
Переводим её в номера команд:
- 0 + 2 = 2 (команда 1)
- 2 * 3 = 6 (команда 2)
- 6 + 2 = 8 (команда 1)
- 8 + 2 = 10 (команда 1) - здесь ошибка, нам нужно 24. Вернёмся к 8.
Попробуем иначе, идём от 0 к 28:
- 0 + 2 = 2 (1)
- 2 + 2 = 4 (1)
- 4 + 2 = 6 (1)
- 6 + 2 = 8 (1)
- 8 + 2 = 10 (1)
- 10 + 2 = 12 (1) ... не подходит
Попробуем умножение:
- 0 + 2 = 2 (1)
- 2 * 3 = 6 (2)
- 6 + 2 = 8 (1)
- 8 * 3 = 24 (2)
- 24 + 2 = 26 (1)
- 26 + 2 = 28 (1)
Получили программу: 121211. Это 6 команд.
Проверим:
- 0 + 2 = 2
- 2 * 3 = 6
- 6 + 2 = 8
- 8 * 3 = 24
- 24 + 2 = 26
- 26 + 2 = 28
Ответ: 121211