344
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