演習課題「円盤4枚を再帰で移動」

右側のコードエリアのJavaプログラムは、ハノイの塔で、2枚の円盤を、0番の杭から2番の杭へ再帰で移動します。このコードを使って、4枚の円盤を0番の杭から1番の杭に、移動する手順を出力してください。

期待する出力値

4
--
0: 4 3 2 1
1:
2:
--
0: 4 3 2
1:
2: 1
--
0: 4 3
1: 2
2: 1
--
0: 4 3
1: 2 1
2:
--
0: 4
1: 2 1
2: 3
--
0: 4 1
1: 2
2: 3
--
0: 4 1
1:
2: 3 2
--
0: 4
1:
2: 3 2 1
--
0:
1: 4
2: 3 2 1
--
0:
1: 4 1
2: 3 2
--
0: 2
1: 4 1
2: 3
--
0: 2 1
1: 4
2: 3
--
0: 2 1
1: 4 3
2:
--
0: 2
1: 4 3
2: 1
--
0:
1: 4 3 2
2: 1
--
0:
1: 4 3 2 1
2:

演習課題「間違い探し」

右側のコードエリアのJavaプログラムは、ハノイの塔で、4枚の円盤を0番の杭から1番の杭に、再帰で移動する手順を出力します。ただし、hanoiメソッドに間違いがあって、エラーになってしまいます。このコードを修正して、正常な手順を出力してください。

期待する出力値

4
--
0: 4 3 2 1
1:
2:
--
0: 4 3 2
1:
2: 1
--
0: 4 3
1: 2
2: 1
--
0: 4 3
1: 2 1
2:
--
0: 4
1: 2 1
2: 3
--
0: 4 1
1: 2
2: 3
--
0: 4 1
1:
2: 3 2
--
0: 4
1:
2: 3 2 1
--
0:
1: 4
2: 3 2 1
--
0:
1: 4 1
2: 3 2
--
0: 2
1: 4 1
2: 3
--
0: 2 1
1: 4
2: 3
--
0: 2 1
1: 4 3
2:
--
0: 2
1: 4 3
2: 1
--
0:
1: 4 3 2
2: 1
--
0:
1: 4 3 2 1
2:

※有料会員になるとこの動画をご利用いただけます
詳しい説明を読む

#06:再帰で実装する

ここでは、ハノイの塔で円盤を動かす手順を、再帰呼び出しで実装します。
大きな問題を解くために、より小さな問題の答えを使っていく 場合、再帰呼び出しで実装できます。