fbpx

Problema #1826 – ZeroF – Rezolvari PBInfo

de Mihai-Alexandru

Cerinţa

Să se scrie o funcție C++ care să returneze pentru un număr natural n transmis ca parametru numărul de cifre zero de la finalul lui n! = 1•2•...•n.

Restricţii şi precizări

  • numele funcției va fi zerof
  • funcția va avea un singur parametru, n
  • valoarea calculată va fi returnată de către funcție
  • prin definiție, 0!=1
  • 0 ≤ n ≤ 10000

Exemplu

fact(6) = 1

6!=720 – se termină cu o cifră zero

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 zerof (int n)
{
    int c2 = 0, c5 = 0;
    if (n == 0) return 0;
    else {
        for ( int i = 1; i <= n; i++)
        {
            int x=i;
            while ( x %5==0) {c5++;x=x/5;}
            while (x%2==0) {c2++;x=x/2;}
        }
        if (c2<= c5)return c2;
        else return c5;
    }
}
Comentarii

S-ar putea sa iti placa