回 帖 发 新 帖 刷新版面

主题:汉诺塔

汉诺塔怎么用pascal写,请帮帮我!

回复列表 (共15个回复)

11 楼

sorry,只能20.

12 楼

看来这里还是有不少新手啊
关于汉诺塔问题……网上随便搜搜一大箩筐的,教科书又老又经典的例题。

不过怎么说还是建议LZ好好研究一下汉诺塔问题,这对以后应用递归解题有很大的帮助的。

13 楼

很简单
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 楼

uses math;
var
  a:qword;
  n:longint;
begin
  readln(n);
  a:=2**n;
  dec(a);
  writeln(a);
end.

15 楼


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.

我来回复

您尚未登录,请登录后再回复。点此登录或注册