Учитывая любое число n и три операции над n:
- добавить 1
- вычесть 1
- разделите на 2, если число четное
Я хочу найти минимальное количество вышеперечисленных операций, чтобы уменьшить n до 1. Я пробовал динамический подход для прогамминга, также BFS с обрезкой, но n может быть очень большим (10 ^ 300), и я не знаю, как сделайте мой алгоритм быстрее. Жадный подход (делить на 2, если даже и вычесть 1, если нечетно) также не дает оптимального результата. Существует ли другое решение?