主题:[原创]汉诺塔
大家都知道应该用递归来做吧(我就不讲了)
现在问题是:4柱汉诺塔如何做?(就是:有4个柱子,其中有两个空闲柱,如何移动使其全部移动到另一柱上?(其他规则与原汉诺塔同))
program fourhanoi;
var m:integer;
procedure movetower(n,A,D,C,B:integer);
procedure moveDisc(fromDisc,toDisc:integer);
begin
write(fromDisc,'->',toDisc,' ');
end;
begin
if n>0 then
begin
movetower(n-2,A,B,D,C);
moveDisc(A,C);
moveDisc(A,D);
moveDisc(C,D);
movetower(n-2,B,D,C,A);
end;
end;
begin
readln(m);
movetower(m,1,4,3,2);
end.