演習課題「円盤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:再帰で実装する
ここでは、ハノイの塔で円盤を動かす手順を、再帰呼び出しで実装します。
大きな問題を解くために、より小さな問題の答えを使っていく 場合、再帰呼び出しで実装できます。
paiza ラーニング - アルゴリズム入門編1:FizzBuzzとフィボナッチ数を学ぶ
https://paiza.jp/works/algorithm/primer/algorithm1
ハノイの塔 - 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