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

Dau coroana! Am nevoie doar de exemplul numeric, va rog din suflet sa îmi explicați cum se face

2. Se consideră subprogramul, f, definit alăturat. Ce valoare are f(20)?
int f(int n)
{ if (n==0) return 0;
return n%2+f(n/2);
}

Răspunsuri la întrebare

Răspuns de radu9614
1

Răspuns:

Programul se opreste cand x este 0. Pana atunci, returneaza 1 + f( n / 2 ), daca n e impar si 0 + f ( n / 2 ), daca n e par ( pentru ca operatia n % 2 returneaza 0 daca n = par ). Bun, deci incepem cu 20 => f( 20 )= 0 + f( 10 ) = 0 + 0 + f( 5 ) = 0 + 0 + 1 + f( 2 ) = 1 + f( 1 ) = 1 + 1 + f( 0 ) = 2 + 0 = 2. Raspunsul final este 2

Explicație:

Daca mai ai vreo intrebare despre cum functioneaza functiile astea recursive intreaba-ma aici.


mirunicaioana0708: Îți multumesc din suflet <333333
radu9614: Cu placere, sper ca te-a ajutat. Daca poti as aprecia o coronita :)
mirunicaioana0708: Sigur, când îmi apare o sa pun :)
radu9614: Mersi mult! Daca mai ai alte probleme la care ai dubii spune-mi si te ajut.
mirunicaioana0708: Sigur, îți multumesc muuuult <3333
mirunicaioana0708: Am mai pus niște întrebări tot despre aceste funcții, poți sa ma m-ai ajuți te implor ? _/\_
Alte întrebări interesante