Cod sursa(job #1454375)

Utilizator PatrunjeluMarginean Bogdan Alexandru Patrunjelu Data 26 iunie 2015 12:44:21
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>

int trailingZeroes(long n)
{
    int powOfFive = 5;
    int divRes = n / powOfFive;
    int zeroCount = 0;
    while (divRes != 0)
    {
        zeroCount += divRes;
        powOfFive *= 5;
        divRes = n / powOfFive;
    }
    return zeroCount;
}

int lowestOkNumber(int reqZeroes)
{
    for (int i = 0; ; i += 5)
    {
        int zeroes = trailingZeroes(i);
        if (zeroes == reqZeroes)
        {
            return i;
        }
        else if (zeroes > reqZeroes)
        {
            return -1;
        }
    }
}

int main()
{
    std::ifstream in("fact.in");
    int num = 0;
    in >> num;
    in.close();
    std::ofstream out("fact.out");
    out << num == 0 ? 1 : lowestOkNumber(num);
    out.close();
}