441
Cerinţa
Să se scrie o funcție C++ care să returneze suma factorialelor cifrelor unui număr natural transmis ca parametru.
Restricţii şi precizări
- numele funcției va fi
sumfactcif - funcția va avea un parametru reprezentând numărul dat, care va fi mai mic decât
2.000.000.000 - prin definiție,
0! = 1
Exemplu
sumfactcif(241) = 27, adică 2!+4!+1! = 1*2+1*2*3*4+1 = 2+24+1 = 27
Important
Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce la erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.
int sumfactcif(int n)
{
int s = 0;
if (n==0) return 1;
else {
while (n != 0)
{
if(n % 10 == 0) s =s + 1;
else
{
int p=1;
for(int i = 1;i <= n % 10; i++)
p =p * i;
s=s+p;
}
n=n/10;
}
return s;
}
}
Comentarii