演習課題「円盤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:カウントを追加する

ここからは、応用編として、ハノイの塔プログラムを効率よく実行する方法を考えます。ここでは、移動する円盤の枚数が増えた時、移動回数がどうなるか調べましょう。そのために、円盤の移動回数を表示するカウント変数を追加します。