コンテンツにスキップ

013: 「終焉のカウントダウン」のヒント

問題 / 解答

難易度:

ヒント1

1枚だけなら、A -> C と出力すれば終わります。 0枚なら、移動はありません。

ヒント2

n 枚を A から C へ移すには、まず上の n - 1 枚を A から B へ移します。 そのあと、一番大きい円盤を A から C へ移します。

ヒント3

最後に、B に置いた n - 1 枚を B から C へ移します。 この処理も、同じハノイの塔の問題です。

ヒント4

再帰関数の引数には、円盤の枚数、移動元の杭、移動先の杭、作業用の杭を渡します。 たとえば solve(n, start, goal, spare) のように考えます。

ヒント5

この手順で動かすと、n 枚の移動回数は 2**n - 1 回になります。 出力の行数が合っているかの確認に使えます。