🧩
【Java】ハノイの塔
この記事は、「新・明解Javaで学ぶアルゴリズムとデータ構造」を読んで学んだことを、個人的な備忘録目的でまとめています。
ただし、本を参考にして自分なりに構成やコードを変更しているためご注意ください。
アルゴリズムの詳細や解説は是非参考書をお手に取って読まれてください。
【リンク紹介】
・Javaで学ぶアルゴリズムとデータ構造
・これまで書いたシリーズ記事一覧
ハノイの塔
package chap05;
import java.util.Scanner;
public class Hanoi {
//--- no枚の円盤をx軸からy軸へ移動 ---//
static void move(int no, int x, int y) {
if (no > 1)
// (no - 1)枚の円盤をx軸から(6 - x - y)軸へ移動
move(no - 1, x, 6 - x - y);
System.out.printf("円盤[%d]を[%d]軸から%d軸へ移動\n", no, x, y);
if (no > 1)
//(no - 1)枚の円盤を(6 - x - y)軸からy軸へ移動
move(no - 1, 6 - x - y, y);
}
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.println("ハノイの塔");
System.out.println("円盤の枚数");
int n = stdIn.nextInt();
// 第1軸に積まれたn枚を第3軸に移動
move(n, 1, 3);
}
}
学習内容まとめ
eclipse操作時に役立つショートカットまとめ
ご協力のほどよろしくお願いします。
Discussion