- Java实现
①
public class Hanoi{
public static void main(String[] args) {
doTowers(3, 'A', 'B', 'C');
}
public static void doTowers(int n, char from, char inter, char to) {
if (n == 1) {
System.out.println("Disk 1 from " + from + " to " + to);
} else {
doTowers(n - 1, from, to, inter);
System.out.println("Disk " + n + " from " + from + " to " + to);
doTowers(n - 1, inter, from, to);
}
}
}
②
public class Hanoi{
public static void main(String[] args) {
Hanoi hanoi = new Hanoi();
hanoi.hanoi(3, 'A', 'B', 'C');
}
/**
*
* @param n圆盘数
* @param from源座
* @param inter辅助座
* @param to目的座
*/
public void hanoi(int n, char from, char inter, char to) {
if (n == 1) {
move(from, to);
} else {
hanoi(n - 1, from, to, inter);
move(from, to);
hanoi(n - 1, inter, from, to);
}
}
private void move(char from, char to) {
System.out.println("From " + from + " to " + to);
}
}