Cod sursa(job #1399542)

Utilizator MailatMailat Radu Mailat Data 24 martie 2015 19:59:59
Problema Factorial Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#include <math.h>
using namespace std;

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

int p;

int test(int c)
{
    int s = 0;
    int x = c;
    do{
        x = x/5;
        s += x;
    }while(x != 0);
    return s;
}

int binar(int a, int b)
{
    if((a+b)/2 == a)
    {
        if(test(a) != p)
            return -1;
    }

    int middle = (a+b)/2;
    int nr_zero = test(middle);
    if(nr_zero < p)
    {
        return binar(middle, b);
    }
    else if(nr_zero > p)
        return binar(a, middle);
    else
    {
        if(middle%5==0)
            return middle;
        else
            return binar(a,middle);
    }


}

int main()
{
    fin >> p;
    int a = 0;
    int b = pow(10,p);
    fout << binar(a,b);

    return 0;
}