👤

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ăspuns :

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;

}