Informatică, întrebare adresată de Utilizator anonim, 8 ani în urmă

Se consideră subprogramul alăturat:

int f(int a,int b)

{if(b<1) return -1;

else

if (a&b==0)

return 1+f(a/b,b);

else

return 0;

}


Ce valoare are f(15,2)? Dar f(128,2)?

Ce face return -1?

Anexe:

Răspunsuri la întrebare

Răspuns de cosmaandra2000
3

Răspuns:

La primul apel iti returneaza din start 0 pentru ca 15%2 !=0.

La al doilea cat "a" se imparte exact la "b", returneaza aceeasi chestie si se opreste in momentul in care "a" nu se mai imparte exact la "b". 1%2!=0

Algoritmul asta il scrie de fapt pe 128 ca putere a lui 2. Adica 2^7

Explicație:

Return -1, pur si simplu returneaza -1.

Anexe:
Alte întrebări interesante