主题:汉诺塔
lidongchao
[专家分:30] 发布于 2010-10-04 14:28:00
汉诺塔怎么用pascal写,请帮帮我!
回复列表 (共15个回复)
11 楼
lidongchao [专家分:30] 发布于 2010-10-06 11:19:00
sorry,只能20.
12 楼
pascal编游戏 [专家分:300] 发布于 2010-10-06 20:27:00
看来这里还是有不少新手啊
关于汉诺塔问题……网上随便搜搜一大箩筐的,教科书又老又经典的例题。
不过怎么说还是建议LZ好好研究一下汉诺塔问题,这对以后应用递归解题有很大的帮助的。
13 楼
phile [专家分:2310] 发布于 2010-10-27 21:05:00
很简单
program hanoi;
var n:integer;
procedure move(n:integer;a,b,c:char);
begin
if n=1 then writeln('Ta',n,':',a,'-->',c)
else begin
move(n-1,a,c,b);
writeln('Ta',n,':',a,'-->',c);
move(n-1,b,a,c);
end;
end;
begin
readln(n);
move(n,'A','B','C');
end.
14 楼
ltc123 [专家分:0] 发布于 2010-11-21 18:10:00
uses math;
var
a:qword;
n:longint;
begin
readln(n);
a:=2**n;
dec(a);
writeln(a);
end.
15 楼
sdklk [专家分:0] 发布于 2012-03-12 20:50:00
var total:longint;
procedure move(n:longint;z1,z2,z3:char);
begin
if n=1 then writeln(z1,' ','To',' ',z3)
else begin
move(n-1,z1,z3,z2);
writeln(z1,' ','To',' ',z3);
move(n-1,z2,z1,z3);
end;
end;
begin
readln(total);
move(total,'A','B','C');
end.
我来回复