4柱hanoi塔问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 13:05:09
(n阶Hanoi塔问题变式)假设有四个分别命名为W、X、Y、Z的塔座,在塔座X上插有n个直径大小各不相同、依小到大编号为1,2,…,n的圆盘。现要求将塔座W上的n个圆盘移至塔座Z上并仍按同样顺序叠排,圆盘移动时必须遵循下列规则:
1)每次只能移动一个圆盘;
2)圆盘可以插在W、X、Y、Z中的任一塔座上;
3)任何时刻都不能将一个较大的圆盘压在较小的圆盘之上。
请写出PASCAL语言程序,注意:把算法讲清楚!
请用PASCAL语言来编程。

全世界都看这里:
注意:与普通的hanoi塔(只有3柱)问题不同!!!
PS:如果你只是随便用普通的hanoi塔(3柱)来解,说明你没好好看题!!!再看一遍题目吧xxxxxx

program hanoi(input,output);
VAR total:integer;
procedure move(n,a,b,c:integer);
begin
if n=1
then writeln (a,'->',c)
else begin
move(n-1,a,c,b);
writeln(a,'->',c);
move(n-1,b,a,c);
end;{if}
end;{move}
begin{hanoi}
readln(total);
move (total,1,2,3) ;
readln
end.{hanoi}