Hanoi Tower 汉诺塔h(n)=2*h(

10 查阅
Hanoi Tower 汉诺塔h(n)=2*h(n-1)+1h(1)=1初始所有铜片都在a柱上procedure hanoi(n,a,b,c:byte); {将第n块铜片从a柱通过b柱移到c柱上}

参考答案:

正确答案:

\r\n

begin
if n=0 then exit;
hanoi(n-1,a,c,b); {将上面的n-1块从a柱通过c柱移到b柱上}
write(n,’moved from’,a,’to’,c);
hanoi(n-1,b,a,c);{ 将b上的n-1块从b柱通过a柱移到c柱上
end;

\r\n

初始铜片分布在3个柱上,给定目标柱goal
h[1..3,0..n]存放三个柱的状态,now与nowp