[ miljan9602 @ 12.11.2015. 02:24 ] @
Pozdrav, imam jedan zadatak koji znam da resim samo pomocu rekurzije, a iterativno (loops) ne mogu da ga resim nikako.

Zadatak je da za uneto n izracunam sve korene do 1.

n = 4;

sqrt(4+(sqrt 3+(sqrt +2(sqrt1))));

Rekurzivno resenje:

Code:

double korenRek(int n)
{
    if(n==1)
        return  1;
    
    return  sqrt(n+korenRek(n-1));
}

Kako ovaj zadatak da resim prekok neke petlje ? Ne trazim da mi ispisete ceo kod , to mi stvarno ne treba.

Problem koji ne mogu resiti:

Kako da svaki broj od n do 1 bude pod korenom, da 1 bude pod korenom od 2, 2 pod korenom od 3, 3 pod korenom do 4 i tako do n ? Taj deo ne mogu da resim.

Hvala svima dobre volje koji pomognu !
[ jablan @ 12.11.2015. 07:46 ] @
Možda da kreneš od 1 ka 4 a ne od 4 ka 1 :)
[ miljan9602 @ 12.11.2015. 10:00 ] @
Tako sam odma i krenuo, ali opet ne mogu da skontam kako najmanji broj bude pod korenom od svakog broja do n, to mi nije jasno..
[ dusans @ 12.11.2015. 10:21 ] @
Izraz u ovoj formi nije moguće napisati u Javi:
Code:

sqrt(... +sqrt(4+sqrt(3+sqrt(2+(sqrt(1))))); 

Iako ga ne možeš direktno napisati u takvoj opštoj formi, svakako ga možeš izračunati,
kao što si i napisao preko rekurzije, a i iterativno - na primer (pseudo-kod):
Code:

r = 1
for x = 2 .. n
    r = x + sqrt(r)


[ miljan9602 @ 12.11.2015. 10:54 ] @
Pisao sam u C-u... Skroz sam zaboravio da ga napravim u javi, nije ni bitno, znam kako ide za Javu. Cim budem mogao probacu da skontam sta si mi napisao za iterativno, pa vam javljam. Hvala svima.