[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[obm-l] Torre de Hanoi



Estou tentando implementar a torre de Hanoi em pascal, mas até agora só consegui chegar a metade do problema, alguém pode me ajudar?
 

program ex_hanoi2;

uses crt;

procedure hanoi2 (n:integer; a,b,c,d:char);

begin

  if n=2 then

    writeln('leve os discos 1 e 2 de ',a,' para ',d)

  else

    begin

      hanoi2(n-1,a,c,d,b);

      writeln('leve o disco ',n,' de ',a,' para ',d);

    end;

end;

var n:integer;

    a,b,c,d:char;

Begin

  clrscr;

  a:='a';b:='b';c:='c';d:='d';

  writeln('Entre com o n§ de elementos: ');

  readln(n);

  hanoi2(n,a,b,c,d);

  readkey;

End.

 

Os passos são:

 

- Leve 1 e 2 de A para C;

- Leve 3 de A para B;

- Leve 4 de A para D;

- Leve 3 de B para D;

- Leve 1 e 2 de C para D.