チャレンジ課題 C1 ハノイの塔

チャレンジ課題とは?

チャレンジ課題は、腕試し用の問題です。チャレンジ課題を解かなくても単位取得はできますが、解いた場合は成績に加味します。

問題

出典:wikipediaより

ハノイの塔を再帰を使って解くプログラム(つまり円盤をどのように移動するかを表示するプログラム)を作成せよ。円盤の枚数nはユーザーの入力で設定できるようにすること。

ハノイの塔のルール

以下のルールに従って、すべての円盤を右端の杭に移動できれば完成。

ヒント

n枚の円盤の移動を、n-1枚の円盤の移動を使って表すことを考える(再帰)。左端の棒から、棒1, 棒2, 棒3と呼ぶことにすると、以下の手順で円盤をすべて移動できる。

  1. 棒3を一時的な退避場所として使い、n-1枚の円盤を棒1から棒2へ移す
  2. 最後の円盤(一番大きなもの)を棒1から棒3へ移す
  3. 棒1を一時的な退避場所として使い、n-1枚の円盤を棒2から棒3へ移す

注意

ネットを調べれば解き方は簡単にわかりますが、自力で考え出す方が楽しいと思います。