📄 hanoi.pas
字号:
program E2_5; {new hanoi}
const max=64;
s:string[3]='ABC';
type
arr=array[1..max] of byte;
var
n:byte;
sou,tar:arr;
count:longint;
procedure init;
var
i,j,k,x:integer;
begin
assign(input,'hanoi.in');
reset(input);
readln(n);
for i:=1 to 3 do
begin
read(k);
for j:=1 to k do
begin
read(x); sou[x]:=i;
end;
end;
for i:=1 to 3 do
begin
read(k);
for j:=1 to k do
begin
read(x); tar[x]:=i;
end;
end;
close(input);
end;
procedure move(k:integer;w:byte);
var i,j:integer;
begin
if sou[k]=w then exit;
j:=6-sou[k]-w;
for i:=k-1 downto 1 do move(i,j);
writeln('move ',k,' from ',s[sou[k]],' to ',s[w]);
sou[k]:=w;
inc(count);
end;
procedure main;
var i:integer;
begin
assign(output,'hanoi.out');
rewrite(output);
for i:=n downto 1 do move(i,tar[i]);
writeln(count);
close(output);
end;
begin
init; main;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -