回 帖 发 新 帖 刷新版面

主题:震惊世界的消息!!!!!!

我已遍出可解n针汉诺塔(包括已认为作出来就是世界末日的64针汉诺塔)的程序
var n,i:integer;
begin
readln(n);
if n=3 then
begin writeln(1,'-',3);writeln(1,'-',2);writeln(3,'-',2);writeln(1,'-',3);
writeln(2,'-',1);writeln(2,'-',3);writeln(1,'-',3);end;
for i:=1 to n-2 do writeln(1,'-',i+1);
writeln(2,'-'3);
writeln(1,'-'2);
writeln(1,'-',n);
for i:=4 to n-1 do writeln(i,'-',n);
writeln(2,'-',n);
writeln(3,'-',2);
writeln(3,'-',n);
writeln(2,'-',n);
end.

回复列表 (共8个回复)

沙发

那又怎么样?
程序中只用到了枚举算法
对初学者者来说还算有点帮助

板凳

递归算法如下:
procedure move(n,a,b,c:integer);  {n为铜板个数,a为源,b为过渡,c为目标}
  begin
    if n=1 then writeln(a,'--',c); 
           else begin
                  move(n-1,a,c,b);  {a为源,c为过渡,b为目标} 
                  writeln(a,'--',c);
                  move(n-1,b,a,c);  {b为源,a为过渡,c为目标}
                end;
  end;

3 楼

王婆卖瓜,自卖自夸。

4 楼

好简单,书上不是有了吗

5 楼

这样也有分`~~``

6 楼

你引用不也有分吗

7 楼

你干嘛总是针对我,大白痴!

8 楼

厉害

我来回复

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