Hey!
Gab es bestimmt schon tausende Male hier im Forum, jedoch hab ich es in der Codelibrary nicht gefunden, ich denke, es fehlt dort.
//Edit: Dies ist die rekursive Variante
Delphi-Quellcode:
program tower_of_hanoi;
{$apptype console}
uses
sysutils,
classes,
windows;
const
sep='----------';
var
n:integer;
s:string;
sl:tstringlist;
time:integer;
procedure bewege(n,movefrom,moveto,using:integer);
begin
if n>0 then
begin
bewege(N-1,movefrom,using,moveto);
sl.Add('bewege '+inttostr(movefrom)+' --> '+inttostr(moveto));
bewege(N-1,using,moveto,movefrom);
end
end;
procedure askhanoi;
begin
writeln('anzahl der scheiben = ?');
readln(n);
writeln('berechne...');
time:=gettickcount;
bewege(n,1,3,2);
time:=gettickcount-time;
writeln('zeit: '+floattostr(time/1000)+' s');
writeln('speichern? (y/n)');
readln(s);
if s='y' then sl.savetofile('hanoi.txt');
sl.clear;
writeln;
writeln(sep);
writeln;
askhanoi;
end;
begin
writeln('turm von bewege');
writeln(sep);
writeln('by raw');
writeln('mail: [email]rawsoulstar@gmail.com[/email]');
writeln(sep);
writeln;
sl:=tstringlist.create;
askhanoi;
sl.free;
end.
Das ganze ist geschrieben nach dem Pseudocode von
wiki
Bin natürlich für jeden Tipp dankbar - vor allem bezüglich der Geschwindigkeit
LG,
Frank.