fbpx

Problema #898 – SumFactCif – Rezolvari PBInfo

de Mihai-Alexandru

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

S-ar putea sa iti placa