👤

Buna!
Imi puteti da niste sfaturi ca sa pot crea solutii pentru problemele recursive? Stiu teoria din spate cu memoria stack, dar cumva imi e foarte greu sa impart problelemele pe probleme mai mici si mai apoi sa le pun cap la cap..


Răspuns :

Te gandesti la o formula care sa fie valabila pentru toate elementele, mai putin pentru primul. La acesta solutia ar trebui sa fie banala.

Exemplu :

1. Factorial

Cat e factorial din n ?

n! = n * (n-1)!

Dar acum cat face factorial din n-1 ?

Pai n = n-1, deci e aceasi formula.

Pentru ce element formula nu mai merge ? Pentru n = 0. In cazul asta trebuie sa returnam

Deci avem

int factorial(int n){

if (n==0) retrun 1;

else return n*factorial(n-);

}

2. Suma Gauss

Cat e suma primelor 5 numere naturale ( suma(5) ) ?

Pai e n + suma(4)

Cat e suma primelor 4 numere naturale ?

Pai e n+ suma(3)

Deci formula e :

n + suma(n-1)

Cand suma nu mai merge calculata dupa formula aia ? Cand se ajunge la n = 0, caz in care returnam 0

int suma(int n){

if (n==0) return 0;

else return n + suma(n-1);

}

Stiu ca e dificil la inceput, lucreaza mai multe probleme si o sa iti dai seama pana la urma.

Vă mulțumim că ați vizitat site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Dacă aveți întrebări sau nevoie de asistență suplimentară, nu ezitați să ne contactați. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!


En Learnings: Alte intrebari