汉诺塔(Tower of Hanoi)是一个源于印度古老传说的谜题。该游戏在一根柱子上安装有三个圆盘,大的在下面,小的在上面。游戏的目标是将所有的圆盘从一根柱子移动到另一根柱子,但是在移动时必须遵守以下规则:
-
每次只能移动一个圆盘。
-
圆盘的大小规则,不能把大的圆盘放在小的圆盘上面。
-
可以利用另一根柱子帮助移动。
public class HanoiTower {
public static void hanoi(int numDisks, char sourcePole, char auxilPole, char destinationPole) {
if (numDisks > 0) {
hanoi(numDisks - 1, sourcePole, destinationPole, auxilPole);
System.out.println("Move disk from " + sourcePole + " to " + destinationPole);
hanoi(numDisks - 1, auxilPole, sourcePole, destinationPole);
}
}
public static void main(String[] args) {
int numDisks = 3; // Number of disks
char sourcePole = 'A'; // Source pole
char auxilPole = 'B'; // Auxiliary pole
char destinationPole = 'C'; // Destination pole
hanoi(numDisks, sourcePole, auxilPole, destinationPole);
}
}