“求教PASCAL汉诺塔的输出问题”

来源:百度知道 编辑:UC知道 时间:2024/05/04 17:51:05
我用递归方法解汉诺塔游戏程序如下:
VAR
n;integer;
PROCEDURE
move(n,a,b,c:integer);
BEGIN
IF n=1
THEN write(a,'>',c,'')
ELSE BEGIN
move(n-1,a,c,b);
write(a,'>',c,'');
move(n-1,b,a,c)
END
END:
BEGIN
read(n);
move(n,1,2,3,)
END.
上面的程序输出是不换行的,我要输出是,每输出八个就换一行,如何改动上面程序?谢谢各位.

加个计数器不就行了
VAR
n:integer;
count:integer;

PROCEDURE move(n,a,b,c:integer);
BEGIN
IF n=1 THEN
Begin
inc(count);
write(a,'>',c,' ');
if count mod 8=0 then writeln;
End
ELSE
BEGIN
move(n-1,a,c,b);
inc(count);
write(a,'>',c,' ');
if count mod 8=0 then writeln;
move(n-1,b,a,c)
END
END;

BEGIN
read(n);
move(n,1,2,3);
END.

计数器用co不就行了
count多打三个字母类