Informatică, întrebare adresată de catalina20019, 8 ani în urmă

Ce valoare are f(3,1)?
int f(int n, int y)
{if (n!=0)
{ y=y+1;
return y+f(n-1,y);}
else return 0;}

Răspunsuri la întrebare

Răspuns de alexdeveloper0
0

Răspuns:

Funcţia v-a returna într-un final valoarea 3.

Explicație:

Se execută ceva de genul :

f(3,1)  1 + f(2, 1)  1 + 2 = 3

f(2,1)  1 + f(1, 1)    1 + 1 = 2

f(1,1)   1 + f(0, 1)   1 + 0 = 1

f(0, 1) => 0


catalina20019: Variantele sunt 6,7,8 sau 9. Multumesc oricum!
alexdeveloper0: Intr-adevar, raspunsul meu este gresit deoarece am omis o instructiune importanta : y = y + 1 inainte de auto apel.
Răspuns de boiustef
1

Răspuns:

9

Explicație:

se fac paşii 1..8, până n devine 0, şi deci valoarea funcţieo 0, după care se fac paţii inapoi cu înlocuire în expresiei funcţiei a valorilor deacum calculate. Săgeata indică direcţia de efectuare a calculelor

Anexe:

catalina20019: Multumesc mult!
boiustef: cu plăcere, sper explicaţiile să fie clare. Dacă ai întrebări, scrie... Succese!
catalina20019: Explicatia este impecabila, nu ramane loc de intrebari. Am mai adaugat un exercitiu, m-ar ajuta o explicatie si acolo.
Alte întrebări interesante