火星救援百度云在线:谁知道汉罗塔游戏的pascal算法

来源:百度文库 编辑:中科新闻网 时间:2024/05/13 16:34:48

三根针,以中间的那根为过度,用pascal的第归算法可以算出。

program Hanoi(input, output);
var
n: Integer;

procedure MoveSingle(Origin, Dest: Char);
begin
Writeln(Origin, '==>', Dest);
end;

procedure MoveMult(Origin, Dest, Medi: Char, n: Integer);
begin
if n > 1 then
begin
MoveMult(Origin, Medi, Dest, n-1);
MoveSingle(Origin, Dest);
MoveMult(Medi, Dest, Origin, n-1);
end else MoveSingle(Origin, Dest);
end;

begin
Writeln('Hanoi program');
Write('Input a number: ');
Readln(n);
MoveMult('A', 'C', 'B', n);
end.