Heim  >  Artikel  >  Java  >  Java-Beispiel – Tower of Hanoi-Algorithmus

Java-Beispiel – Tower of Hanoi-Algorithmus

黄舟
黄舟Original
2017-02-07 10:56:151375Durchsuche

Der Turm von Hanoi (auch bekannt als der Turm von Hanoi) ist ein Lernspielzeug, das auf einer alten Legende in Indien basiert. Als Brahma die Welt erschuf, schuf er drei Diamantsäulen. Auf einer Säule wurden 64 Goldscheiben in der Reihenfolge ihrer Größe von unten nach oben gestapelt. Brahma befahl dem Brahmin, die Scheiben auf einer anderen Säule in der Reihenfolge ihrer Größe von unten neu anzuordnen. Es ist auch festgelegt, dass die Scheibe auf der kleinen Scheibe nicht vergrößert werden kann und jeweils nur eine Scheibe zwischen den drei Säulen bewegt werden kann.

Später entwickelte sich aus dieser Legende das Spiel Tower of Hanoi und das Gameplay ist wie folgt:

1 Es gibt drei Pole A, B und C. Auf der Stange A befinden sich mehrere Platten.

2. Bewegen Sie jeweils eine Platte, und die kleinere kann nur auf der größeren gestapelt werden.

3. Bewegen Sie alle Platten von der Stange A zu Pol C

Das folgende Beispiel zeigt die Implementierung des Tower of Hanoi-Algorithmus:

/*
 author by w3cschool.cc
 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);
      }
   }
}

Das Ausgabeergebnis der Ausführung des obigen Codes ist:

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


Das Obige ist der Inhalt des Java-Beispiels – Tower of Hanoi-Algorithmus. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:[Java-Beispiel] Array-FüllungNächster Artikel:[Java-Beispiel] Array-Füllung