再帰を理解するのにまったく問題はありませんが、ハノイの塔の問題に対する再帰的な解決策に頭を悩ませているようには見えません。ウィキペディアのコードは次のとおりです。
procedure Hanoi(n: integer; source, dest, by: char);
Begin
if (n=1) then
writeln('Move the plate from ', source, ' to ', dest)
else begin
Hanoi(n-1, source, by, dest);
writeln('Move the plate from ', source, ' to ', dest);
Hanoi(n-1, by, dest, source);
end;
End;
基本的なケースと、単一のディスクを移動できるようになるまで問題をより小さな部分に分割するという概念を理解しています。ただし、非基本ケースの 2 つの再帰呼び出しがどのように連携するのかわかりません。おそらく誰かが私を助けることができますか?ありがとう。