Pasii functiei recursive

Acest forum este dedicat intrebarilor de programare care nu-si au locul in unul din celelalte forumuri

Pasii functiei recursive

Mesajde Skyp89 » 28 Apr 2016, 01:03

Pentru definiţia de mai jos a subprogramului f, ce se afişează ca urmare a apelului f(12345);?

void f(long n)
{ cout<<n%10;
if(n!=0)
{ f(n/100); cout<<n%10;}
}

Am compilat si executat programul si stiu ca ar trebui sa afiseze: 5310135, dar cand incerc sa fac pasii pe foaie, nu reusesc sa imi dau seama cum se ajunge la rezultatul asta. As avea nevoie ca cineva sa imi explice cat mai detaliat ce si cum se printeaza la fiecare pas, la fiecare autoapelare a functiei recursive. Nu sunt sigur cum se stocheaza datele in stiva pana la printarea lor, si nu stiu cum se "intrerupe" programul atunci cand se ajunge la o autoapelare. De exemplu, in programul de fata, cand se fac afisarile din IF daca de fiecare data cand se trece testul IF-ului, se autoapeleaza functia? Si printarea solutiilor se face in ordine inversa fata de ordinea in care s-au gasit fiind stocate in stiva sau ma insel? Merci!
Skyp89
Junior
Junior
 
Mesaje: 12
Membru din: 25 Ian 2016, 11:55
Judet: Suceava

Înapoi la Programare generala

Cine este conectat

Utilizatorii ce navighează pe acest forum: Niciun utilizator înregistrat şi 2 vizitatori

cron