主题:请问汉诺塔问题怎么解决
Puge
[专家分:0] 发布于 2005-04-19 13:55:00
要求:任意输入一个层数。
回复列表 (共2个回复)
沙发
小小的草根 [专家分:0] 发布于 2005-04-20 21:39:00
var n:integer;
x,y,z:char;
procedure hanoi(n:integer;x,y,z:char);
begin
if n=1 then writeln(1:4,'pan from ',x,' to ',z)
else
begin
hanoi(n-1,x,z,y);
writeln(n:4,'pan from ',x,' to ',z);
hanoi(n-1,y,x,z);
end;
end;
begin
read(n);
x:='x';
y:='y';
z:='z';
hanoi(n,x,y,z);
end.
板凳
lyn532226 [专家分:230] 发布于 2005-04-22 12:43:00
[em8]我是个菜鸟,但我也来试下。[em2]
program hanio;
var
i: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;
end;
begin
writeln('Input chenshu');
read(i);
move(n,1,2,3);
end.
我来回复