Giải bài toán Tháp Hà Nội (Tower of Hanoi) trong Java



Miêu tả vấn đề

Cách sử dụng phương thức để giải bài toán Tháp Hà Nội trong Java.

Giải pháp

Ví dụ sau minh họa cách sử dụng phương thức để giải bài toán Tháp Hà Nội (cho 3 đĩa) trong 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);
      }
   }
}

Kết quả

Code trên sẽ cho kết quả sau:

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

phuong-thuc_trong_java.jsp