Tag:

河内塔:recursionalgorithm

虽然我对理解recursion没有任何问题,但我似乎无法把头脑放在河内问题的recursion解决scheme上。 这里是维基百科的代码: 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; 我理解基本案例和将问题分解为更小块的概念,直到您能够移动单个磁盘。 但是,我无法弄清楚非基本情况下的两个recursion调用是如何协同工作的。 也许有人可以帮我吗? 谢谢。