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

Pentru funcţiile f şi g definite mai jos, stabiliţi care este rezultatul returnat la apelul f(6)?

long g(long x)
{ if (x>9)
return (x/10 + x%10);
else
return x;
}
long f(int c)
{ if (c<1)
return 1;
else
return g(c+f(c-1));
}
Ajutor va rog, rezultatul da 4, insa mie imi da 3 si vreau sa vad ce saracie gresesc ca nu-mi dau seama.

Răspunsuri la întrebare

Răspuns de CinevaFaraNume
2

Răspuns:

4

Explicație:

f(6) = g(6+f(5))

f(5) = g(5+f(4))

f(4) = g(4+f(3))

f(3) = g(3+f(2))

f(2) = g(2+f(1))

f(1) = g(1+f(0))

f(0) = 1 --> f(1) = g(1+1) = g(2)

g(2) = 2 --> f(1) = 2

f(2) = g(2+2) = g(4) = 4

f(3) = g(3+4) = g(7) = 7

f(4) = g(4+7) = g(11) = 2

f(5) = g(5+2) = g(7) = 7

f(6) = g(6+7) = g(13) = 4


Alexandru987: Multumesc!
Alte întrebări interesante