🧩

【Java】ハノイの塔

2024/11/27に公開

この記事は、「新・明解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操作時に役立つショートカットまとめ
https://qiita.com/toshi0383/items/1d2a990392998789062c

\bf{\textcolor{red}{記事が役に立った方は「いいね」を押していただけると、すごく喜びます \ 笑}}
ご協力のほどよろしくお願いします。

Discussion