Примеры 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