Informatică, întrebare adresată de Istefan, 9 ani în urmă

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 erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.


AntiEaglesDavids: Tu ce ai incercat de nu ti-a iesit?
artur99: :)))
artur99: era replica mea =)))

Răspunsuri la întrebare

Răspuns de AntiEaglesDavids
10
int sumfactcif(int val)
{
    int suma = 0, fact[11];
    fact[0] = 1;
    for(int i=1; i<=9; i++) fact[i] = fact[i-1] * i; // PD pentru timp mult mai scurt

    while(val) suma += fact[val % 10], val /= 10;
    return suma;
}


Istefan: NEmodificata ia 20
AntiEaglesDavids: pai cui pasa de aia nemodificata? pune si celelalte cazuri (ca e defapt doar unu si il scrii in 2 linii de cod) si zi-mi cat obtine
Istefan: 100
AntiEaglesDavids: cumva site-ul de pe care faci probleme e pb nu mai stiu eu cum?
Istefan: pbinfo
AntiEaglesDavids: ma gandeam eu, site de 2 lei cu teste de 3 lei...
artur99: =))))
AntiEaglesDavids: intreaba-l pe varu "Artur". El a reusit sa sparga de 2 ori bazele lor de date, deci ;)
artur99: ba nu! =))
AntiEaglesDavids: eh zice asta pt ca e modest de felul lui :))
Alte întrebări interesante