Ir para o conteúdo

Torres de Hanoi

Program torreHanoi;
uses wincrt;
var n:integer;

  procedure hanoi(n:integer;a,b,c:char);
  {mova n discos do pino a para o pino b usando o pino c como auxiliar}
  begin
    if n=1
    then writeln('mova o disco ',n,' do pino ',a,' para o pino ',b)
    else
    begin
      hanoi(n-1,a,c,b);
      writeln('mova o disco ',n,' do pino ',a,' para o pino ',b);
      hanoi(n-1,c,b,a)
    end
  end;

begin
  write('TORRES DE HANOI. Quantos discos para mover? ');
  readln(n);
  hanoi(n,'A','B','C');
  readln; // pausa
end.