Ako nekoga zanima moze da pogleda koliko je to ustvari posla. Ako neko ne znam hanojska kula je na tibetu i recheno je kada se ona slozi doci ce smak sveta. Postoje 3 stuba i na jednom ima 64 diska. Znachi manji na vecem nesme obrnuto. I sada trebaju svi ti diskovi sa jednosh stapa da se prebace na drugi ali nikada nesme da se stavi veci na manji disk. Evo moje resenje ;) Neko moze da compajlira u exe pa da pozove iz dosa hanoj.exe > hanoj.txt chini mi se da se tako sve upisuje u fajl davidite koliko tu poteza ima :) A da nekazem da oni to rade napamet i da greshe i da edan disk prebacuju otprilike jedan dan ;)
program ispisuje samo potese tipa 1>2 to znachi sa prvog na drugi disk.
kada ce taj smak sveta :)
Code:
Program Hanojska_Kula;
var
brojdiskova,b:Longint;
SA,NA,POM:Byte;
Procedure PREBACI(N,SA,NA,POM:integer);
Begin
IF N>1
THEN Begin
b:=b+1;
PREBACI(N-1,SA,POM,NA);
Write('Û',SA,'->',NA);
PREBACI(N-1,POM,NA,SA);
END;
END;
Begin
b:=0;
Writeln;
Write('Unesi broj diskova: ');Readln(brojdiskova);
Write('Unesi na kojem su stubu diskovi [1-3]: ');Readln(SA);
IF (SA>3) or (SA<1) THEN HALT;
Write('Unesi na koji stub treba da se sloze diskovi [1-3]: ');Readln(NA);
IF (SA=NA) or (NA>3) or (NA<1) THEN HALT;
Write('Pomocu kogi stuba treba da se prebace diskovi [1-3]: ');Readln(POM);
IF (SA=NA) or (SA=POM) or (NA=POM) or (POM>3) or (POM<1) THEN HALT;
PREBACI(brojdiskova,SA,NA,POM);
Writeln;
Writeln('Diskovi su prebaceni u ',b,' poteza');
readln;
END.
Program Hanojska_Kula;
var
brojdiskova,b:Longint;
SA,NA,POM:Byte;
Procedure PREBACI(N,SA,NA,POM:integer);
Begin
IF N>1
THEN Begin
b:=b+1;
PREBACI(N-1,SA,POM,NA);
Write('Û',SA,'->',NA);
PREBACI(N-1,POM,NA,SA);
END;
END;
Begin
b:=0;
Writeln;
Write('Unesi broj diskova: ');Readln(brojdiskova);
Write('Unesi na kojem su stubu diskovi [1-3]: ');Readln(SA);
IF (SA>3) or (SA<1) THEN HALT;
Write('Unesi na koji stub treba da se sloze diskovi [1-3]: ');Readln(NA);
IF (SA=NA) or (NA>3) or (NA<1) THEN HALT;
Write('Pomocu kogi stuba treba da se prebace diskovi [1-3]: ');Readln(POM);
IF (SA=NA) or (SA=POM) or (NA=POM) or (POM>3) or (POM<1) THEN HALT;
PREBACI(brojdiskova,SA,NA,POM);
Writeln;
Writeln('Diskovi su prebaceni u ',b,' poteza');
readln;
END.
program ispisuje samo potese tipa 1>2 to znachi sa prvog na drugi disk.
kada ce taj smak sveta :)
Potpis
Jel potpis treba pisanim ili
štampanim slovima?
___________________________________
______
[url=http://www.dizajnzona.com/foru
ms/]dizajnzona.com[/url]
[url=http://www.netizenfaction.com/
]netizenfaction.com[/url]
egoideas.
com
levodesn
o.com
štampanim slovima?
___________________________________
______
[url=http://www.dizajnzona.com/foru
ms/]dizajnzona.com[/url]
[url=http://www.netizenfaction.com/
]netizenfaction.com[/url]
egoideas.
com
levodesn
o.com