[ codebreaker @ 19.12.2006. 20:30 ] @
| 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! |
[ EArthquake @ 20.12.2006. 21:03 ] @
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
[ Mare34 @ 07.01.2007. 15:17 ] @
Taj algoritam se zove hanojeva kula i ima u svim pocetnim knjigama u vezi algoritama i rekurzije.
[ Mare34 @ 08.01.2007. 22:55 ] @
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
Copyright (C) 2001-2024 by www.elitesecurity.org. All rights reserved.