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.