Рекурсивный алгоритм разбит на три этапа:
- Переместить все диски, кроме одного, в «запасную» колышек
- Переместить последний диск в конечный колышек
- Переместите все диски, кроме одного (те, что на шаге 1), из запасного штифта в штифт назначения
Таким образом, все диски были перемещены в штифт назначения.
Шаги 1и 3 - два рекурсивных вызова move(k-1, ...)
в псевдокоде.Шаг 2 смоделирован с помощью printf
.
. Суть в том, что шаги 1 и 3 повторяются в большем количестве вызовов на move
, и каждый вызов на move
, для которого k > 0
печатает ровно одинстрока инструкций с prinft
.Так что произойдет, что этот алгоритм напечатает шаги, которые вам нужно предпринять, чтобы переместить диски в мельчайших деталях, один за другим.
По сути, этот псевдокод не реализует алгоритм для перемещения колышки;это алгоритм для предоставления инструкций человеку , если хотите.