|
codebreaker Milan Savic Zajechar
Član broj: 125807 Poruke: 7 *.smin.sezampro.yu.
ICQ: 463826210
|
Problem se sastoji u sledecem:
Postoje 3 shtapa. Na 1. shtapu se nalaze diskovi poredjani od najveceg do najmanjeg (najveci je skroz dole). Pomocu shtapa 2 treba prebaciti diskove na treci uz prvilo da manji disk nikad ne sme da bude ispod veceg i da samo jedan disk sme da se prenese u jednom vremenskom trenutku. Naime program treba da na osnovu unetog broja diskova da izrachuna broj koraka u premeshtanju i da ispishe redosled tih koraka (npr.: sa prebachaj diska sa prvog na drugi shtap ce biti oznachen sa 1->2, sa drugog na trci sa 2->3...). Ovo se treba uraditi preko rekurzivnih funkcija!
|
| 19.12.2006. u 20:30 |
| |
|
EArthquake Aleksandar Nikolic Novi Sad
Član broj: 20684 Poruke: 651 194.106.187.*
Sajt: www.phearless.org
|
gde pogodi da ovo stavis u Kernel i OS programiranje :)
to su hanojske kule , da ti nebi pisao algorimat ovde proguglaj malo i nacices resenje
|
| 20.12.2006. u 21:03 |
| |
|
Mare34 Marko Novakovic freelance developer and marketing analyst Belgrade
Član broj: 30613 Poruke: 96 *.dynamic.sbb.co.yu.
|
Taj algoritam se zove hanojeva kula i ima u svim pocetnim knjigama u vezi algoritama i rekurzije.
|
| 07.01.2007. u 15:17 |
| |
|
Mare34 Marko Novakovic freelance developer and marketing analyst Belgrade
Član broj: 30613 Poruke: 96 *.dynamic.sbb.co.yu.
|
Evo i rekurzivnog algoritma:
void Hanoy(int n, char from, char to char aux) {
if (n==1) {printf("Prenesi disk 1 sa %c na %c", from, to); return;}
Hanoy(n-1, from, aux, to);
printf("Prenesi disk %n sa %c na %c", n, from, to)
Hanoy(n-1, aux, to, from);
}
Izvinjavam se ako ima greske u sintaksi naredbe printf, dugo je nisam koristio........
Ovih dana cu da objavim nerekurzivnu verziju
|
| 08.01.2007. u 22:55 |
| |