演習課題「円盤4枚の移動回数を表示」
右側のコードエリアのJavaプログラムは、ハノイの塔で、円盤4枚を再帰で移動します。また、移動回数をcount変数で保持しており、移動手順は出力しません。このプログラムを修正して、円盤4枚の移動回数だけを出力してください。
期待する出力値
4
15
演習課題「間違い探し」
右側のコードエリアのJavaプログラムは、ハノイの塔で、4枚の円盤を0番の杭から2番の杭に、再帰で移動する手順を出力し、移動回数も表示します。ただし、moveOneメソッドに間違いがあって、正常に動作しません。このコードを修正して、正常な手順を出力してください。
期待する出力値
4
--
count: 0
0: 4 3 2 1
1:
2:
--
count: 1
0: 4 3 2
1: 1
2:
--
count: 2
0: 4 3
1: 1
2: 2
--
count: 3
0: 4 3
1:
2: 2 1
--
count: 4
0: 4
1: 3
2: 2 1
--
count: 5
0: 4 1
1: 3
2: 2
--
count: 6
0: 4 1
1: 3 2
2:
--
count: 7
0: 4
1: 3 2 1
2:
--
count: 8
0:
1: 3 2 1
2: 4
--
count: 9
0:
1: 3 2
2: 4 1
--
count: 10
0: 2
1: 3
2: 4 1
--
count: 11
0: 2 1
1: 3
2: 4
--
count: 12
0: 2 1
1:
2: 4 3
--
count: 13
0: 2
1: 1
2: 4 3
--
count: 14
0:
1: 1
2: 4 3 2
--
count: 15
0:
1:
2: 4 3 2 1
#07:カウントを追加する
ここからは、応用編として、ハノイの塔プログラムを効率よく実行する方法を考えます。ここでは、移動する円盤の枚数が増えた時、移動回数がどうなるか調べましょう。そのために、円盤の移動回数を表示するカウント変数を追加します。
ハノイの塔 - Wikipedia
https://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%8E%E3%82%A4%E3%81%AE%E5%A1%94
ハノイの塔 解説
http://www.slideshare.net/paiza_official/ss-42702412
ハノイの塔 - プログラミング学習のpaiza
https://paiza.jp/learning/hanoi