Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
Greda Forumaš(ica)

Pridružen/a: 01. 07. 2006. (14:00:26) Postovi: (44)16
Spol: 
|
|
[Vrh] |
|
petrich Forumaš(ica)


Pridružen/a: 07. 11. 2005. (22:23:35) Postovi: (F6)16
Spol: 
|
Postano: 21:38 čet, 6. 7. 2006 Naslov: Re: Rekurzija |
|
|
[quote="Greda"]Jel bi mi mogao netko objasniti što ispisuje sljedeći kod i kak doć do tog ispisa a da ne prepisujem kod u Dev C?
:idea: :?:
int g (int x) {
int a=0, b=0;
printf ("%d ", x);
if (x<3) { a=g(x+3); b=g(x+1); return g(a+b); }
else return x;
}
int main ( void ) { g(0); return 0; }
Bio sam na onom ponavljanju za popravni kolokvij.ali nisam nikako uspio skužit na kojem principu rade te rekurzije. Hvala unaprijed[/quote]
[code:1]
g(0)
a=0
b=0
x=0
a=g(3) ->3
a=0
b=0
x=3 -> za 3 staje jer 3 nije vece od 3 i onda vraca tu vrijednost za a
b=g(1) ->12
a=0
b=0
x=1 -> za x=1 ulazi ponovo u a
a=g(4) ->4
a=0
b=0
x=4 -> tu staje i za prethodni a vraca 4
b=g(2) ->8
a=0
b=0
x=2 -> ide dalje,opet prvo u a
a=g(5) ->5
a=0
b=0
x=5 -> staje za a vraca 5, nastavlja na istoj razini za b
b=g(3) ->3
a=0
b=0
x=3 ->staje, za b vraca 3, nastavlja na istoj razini za g
g(3+5=8) ovdje uzme zbroj a i b sa te razine
a=0
b=0
x=8 ->staje i tu vrijednost vraca na visu razinu
g(4+8=12) uzima zbroj a i b sa te razine
a=0
b=0
x=12->staje i tu vrijednost vraca na visu razinu
g(3+12=15) uzima zbroj a i b sa te razine
a=0
b=0
x=15-> tu je kraj.
[/code:1]
ispisuje: 0 3 1 4 2 5 3 8 12 15 (dakle sve x-eve)
znaci u rekurziji, uvijek ides odmah najdublje sto ide, a onda se vracas nivo po nivo nazad.. ne znam kak bi ti bolje objasnila. :tso:
Greda (napisa): | Jel bi mi mogao netko objasniti što ispisuje sljedeći kod i kak doć do tog ispisa a da ne prepisujem kod u Dev C?
int g (int x) {
int a=0, b=0;
printf ("%d ", x);
if (x<3) { a=g(x+3); b=g(x+1); return g(a+b); }
else return x;
}
int main ( void ) { g(0); return 0; }
Bio sam na onom ponavljanju za popravni kolokvij.ali nisam nikako uspio skužit na kojem principu rade te rekurzije. Hvala unaprijed |
Kod: |
g(0)
a=0
b=0
x=0
a=g(3) ->3
a=0
b=0
x=3 -> za 3 staje jer 3 nije vece od 3 i onda vraca tu vrijednost za a
b=g(1) ->12
a=0
b=0
x=1 -> za x=1 ulazi ponovo u a
a=g(4) ->4
a=0
b=0
x=4 -> tu staje i za prethodni a vraca 4
b=g(2) ->8
a=0
b=0
x=2 -> ide dalje,opet prvo u a
a=g(5) ->5
a=0
b=0
x=5 -> staje za a vraca 5, nastavlja na istoj razini za b
b=g(3) ->3
a=0
b=0
x=3 ->staje, za b vraca 3, nastavlja na istoj razini za g
g(3+5=8) ovdje uzme zbroj a i b sa te razine
a=0
b=0
x=8 ->staje i tu vrijednost vraca na visu razinu
g(4+8=12) uzima zbroj a i b sa te razine
a=0
b=0
x=12->staje i tu vrijednost vraca na visu razinu
g(3+12=15) uzima zbroj a i b sa te razine
a=0
b=0
x=15-> tu je kraj.
|
ispisuje: 0 3 1 4 2 5 3 8 12 15 (dakle sve x-eve)
znaci u rekurziji, uvijek ides odmah najdublje sto ide, a onda se vracas nivo po nivo nazad.. ne znam kak bi ti bolje objasnila.
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
|
[Vrh] |
|
petrich Forumaš(ica)


Pridružen/a: 07. 11. 2005. (22:23:35) Postovi: (F6)16
Spol: 
|
|
[Vrh] |
|
fireball Forumaš(ica)


Pridružen/a: 07. 10. 2005. (18:49:17) Postovi: (4AB)16
Spol: 
Lokacija: s rukom u vatri i nogom u grobu
|
|
[Vrh] |
|
mladac Forumaš(ica)


Pridružen/a: 24. 10. 2005. (22:46:14) Postovi: (4D5)16
Spol: 
Lokacija: zg
|
|
[Vrh] |
|
petrich Forumaš(ica)


Pridružen/a: 07. 11. 2005. (22:23:35) Postovi: (F6)16
Spol: 
|
|
[Vrh] |
|
fireball Forumaš(ica)


Pridružen/a: 07. 10. 2005. (18:49:17) Postovi: (4AB)16
Spol: 
Lokacija: s rukom u vatri i nogom u grobu
|
|
[Vrh] |
|
|