Примеры Java - Алгоритм ханойской башни

Java 实例Примеры Java

Задача Ханойской башни (также известная как Башня Ханоя) — это обучающая игрушка, происходящая из древней индийской легенды. Когда Брахма создал мир, он создал три алмазных столпа и нанизал 64 золотых диска на один столп снизу вверх в порядке размера. Брахма повелел брахманам переставить диски на другой столп, начиная снизу, в порядке размера. Также было установлено, что больший диск нельзя класть на меньший, и за один раз можно перемещать только один диск между тремя столпами.

Позже эта легенда превратилась в игру «Ханойская башня». Правила следующие:

  • 1. Есть три стержня A, B, C. На стержне A находится несколько дисков.
  • 2. За один раз перемещается только один диск, и меньший диск можно класть только на больший.
  • 3. Переместите все диски со стержня A на стержень C.

В следующем примере демонстрируется реализация алгоритма Ханойской башни:

файл MainClass.java

public class MainClass { public static void main(String[] args) { int nDisks = 3; doTowers(nDisks, 'A', 'B', 'C'); } public static void doTowers(int topN, char from, char inter, char to) { if (topN == 1){ System.out.println("Disk 1 from " + from + " to " + to); }else { doTowers(topN - 1, from, to, inter); System.out.println("Disk " + topN + " from " + from + " to " + to); doTowers(topN - 1, inter, from, to); } } }

Вывод выполнения приведенного выше кода:

Disk 1 from A to C
Disk 2 from A to B
Disk 1 from C to B
Disk 3 from A to C
Disk 1 from B to A
Disk 2 from B to C
Disk 1 from A to C

Java 实例Примеры Java

Другие расширения