public class HanoiTower {
public static void main(String[] args) {
int discs = 3; // タワーのディスクの数
char source = 'A'; // 出発地点の塔
char auxiliary = 'B'; // 仮の塔
char destination = 'C'; // 目的地の塔
solveHanoi(discs, source, auxiliary, destination);
}
public static void solveHanoi(int discs, char source, char auxiliary, char destination) {
if (discs == 1) {
System.out.println("ディスクを " + source + " から " + destination + " に移動します。");
} else {
solveHanoi(discs - 1, source, destination, auxiliary);
System.out.println("ディスクを " + source + " から " + destination + " に移動します。");
solveHanoi(discs - 1, auxiliary, source, destination);
}
}
}
このコードを実行すると、solveHanoi
メソッドが呼び出され、ディスクの移動手順が出力されます。ディスクの数を増やすことで、より大きなハノイの塔を扱うこともできます。
以上が、Javaでのハノイの塔の実装方法の例です。このアルゴリズムは再帰を使用していますが、理解しやすく実装しやすい特徴があります。ぜひ、このコードを参考にしてみてください。