sTudeNT
Профи
(750)
14 лет назад
вот полная реализация на паскале.. .
uses crt;
var n: integer;
procedure q(n:integer;a,b,c: char);
begin
if n>0 then
begin
q(n-1,a,c,b);
write('disc',n,':',a,'-->',c);
writeln;
q(n-1,b,a,c);
end;
end;
begin
clrscr;
readln(n);
if n>0 then q(n,'a','b','c')
else writeln('not....');
readkey;
end.
procedure Solve(n: integer; a,b,c: Char);
begin
if n > 0 then
begin
Solve(n-1, a, c, b);
Writeln('Переместить диск со стержня ', a, ' на стержень ',b);
Solve(n-1, c, b, a);
end;
end;
begin
Solve(4, '1','2','3');
end.
Пытался перевести на Визуал Бэйсик но не вышло, не работает так как надо, типа этого(
Private Sub Solve(n As Integer, a As Integer, b As Integer, c As Integer)
If n > 0 Then
Call Solve(n - 1, a, b, c)
Picture1.Print "Переместить диск со стержня "; a; " на стержень "; b
Call Solve(n - 1, b, c, a)
End If
End Sub