Cod sursa(job #1892925)

Utilizator cristianursacheCristian Ursache cristianursache Data 25 februarie 2017 13:18:25
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>

using namespace std;

ifstream in ("fact.in");
ofstream out ("fact.out");

int cinci(int n)
{
    int i = 5, s = 0;
    while (n/i >= 1)
    {
        s += n/i;
        i *= 5;
    }
    return s;
}

int cautbin (int st, int dr, int val)
{
    int rasp, i = 0;
    if (st > dr)
        return -1;
    int mij = (st + dr) / 2;
    if (cinci (mij) > val)
        return cautbin (st, mij - 1, val);
    else if (cinci (mij) < val)
        return cautbin (mij + 1, dr, val);
    else if (cinci (mij) == val)
    {
        rasp = mij;
        while (cinci(mij) == val)
        {
            mij--;
            i++;
        }
        return rasp + 1 - i;
    }
}

int main()
{
    int n;
    in >> n;
    if (n == 0)
        out << 1;
    else
        out << cautbin (1, 10000000000, n);
    return 0;
}