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

Buna!
Imi poat explica cineva ce face functia asta?
E in c++.
int f(int x) { return x? f(x/2)+x%2:0; }
Mersi!

Răspunsuri la întrebare

Răspuns de CinevaFaraNume
3

Răspuns:

Calculeaza suma cifrelor ale lui x in baza 2.

Explicație:

Se poate rescrie ca

int f(int x)

{

   if (x == 0) { return 0; }

   return f(x / 2) + x % 2;

}

Poate ar fi mai usor de recunoscut daca am avea 10 in loc de 2(si calculeaza suma cifrelor in baza 10):

int f(int x)

{

   if (x == 0) { return 0; }

   return f(x / 10) + x % 10;

}


dyadi: Buna, ma poti ajuta si pe mine la info?
CinevaFaraNume: Depinde
dyadi: tablouri unidimensionale
Alte întrebări interesante