求教汉诺塔
freepascal吧
全部回复
仅看楼主
level 1
微世界122 楼主
按照书上编了一个汉诺塔(完全照抄) 结果运行后立刻弹回来了
program ex43;
var x,y,z:char;
n,k:integer;
procedure move(n:integer; a,c,b:char);
begin
if n=0 then exit;
move(n-1,a,b,c);
inc(k);
writeln(k,':from', a,'-->',c);
move(n-1,b,c,a);
end;
begin
write('n='); readln(n);
k:=0; x:='a'; y:='b'; z:='c';
move(n,x,z,y);
end.
2015年09月12日 13点09分 1
level 10
彈出來?是顯示Code嗎?
2015年10月06日 10点10分 2
level 4
试试这个
var a,b,c,n,s,m:integer;;
procedure f(a,b,c,n:integer);
begin
if n=1then write(a,'------>',c‘ ’);
else begin
f(a,c,b,n-1);inc(s);
write(a'-------->',c' ');
f(b,a,c,n-1);inc(s);
end;
end;
begin
readln(n);
f(1,2,3,n);
writeln(s+1);
end.
楼主先输入汉诺塔的盘数,然后自动显示过程和移动次数
2015年10月30日 07点10分 3
1