X-Git-Url: http://svarog.pmf.uns.ac.rs/gitweb/?p=spa2-materijali.git;a=blobdiff_plain;f=PretrazivanjeSaVracanjem%2FCifre%2F_zad0-cifre.txt;fp=PretrazivanjeSaVracanjem%2FCifre%2F_zad0-cifre.txt;h=b2f71a7ef55e2a044541a338ea6d5a1b2c7f082b;hp=0000000000000000000000000000000000000000;hb=f64ba7b14b889375f0be6099b673649b70413f4b;hpb=1a9c238e65042a164bae2c2b559241c23f9122fb diff --git a/PretrazivanjeSaVracanjem/Cifre/_zad0-cifre.txt b/PretrazivanjeSaVracanjem/Cifre/_zad0-cifre.txt new file mode 100755 index 0000000..b2f71a7 --- /dev/null +++ b/PretrazivanjeSaVracanjem/Cifre/_zad0-cifre.txt @@ -0,0 +1,53 @@ +Zadatak 0 - rekurzivno resavanje problema +========================================= + +Napisati program koji ce na ekran da ispise sve brojeve sa 4 cifre, odnosno +sve od 0000 do 9999. + +0000 +0001 +0002 +0003 +0004 +... +1000 +1001 +... +9998 +9999 + + +Problem resavati pretrazivanjem sa vracanjem, a ne direktno sa nekom +petljom od 0 do 9999. + + +Ideje +----- + +Razmotriti kako problem opisati rekurzivno, a ne iterativno sto bi bio +uobicajeni pristup. + +Problem nekako treba razbiti na rekurzivne delove. Ovde mozemo gledati +po duzini, tj broju cifara koje treba obraditi. + +Na primer za sve jedncifrene brojeve je samo potrebno probati sve mogucnosti 0-9 +i svaki put ispisati to resenje. + +Za dve cifre je potrebno probati sve mogucnosti za tu drugu poziciju (0-9) i za +svaku od tih mogucnosti probati sve mogucnosti za jednu cifru. + +Odnosno za bilo koji broj cifara, treba da isprobavamo jednu koju trenutno +gledamo, i za svaku od tih mogucnosti generisanje svih resenja sa manjim +brojem cifara. + +Kod rekurzivnog resavanja problema je uvek neophodno definisati "trivijalne" +izlaze, tj izvrsavanja metoda u kojima nece biti novih rekurzivnih poziva. +Bitno je da se ceo postupak u nekom momentu zavrsi. + +Kod ovog resavanja se to tipicno resava tako sto se rekurzivno uvek ide na +jednu stranu (s leva na desno, ili s desna na levo), a trivijalni pozivi su +kad se stigne na kraj niza ili "ispadne" iz njega (skroz desno, tj skroz +levo). + +Povratak unazad se desava pri povratku iz rekurzije, a ne eksplicitnim +pozivima. \ No newline at end of file