Cod sursa(job #1614469)

Utilizator alex.stancuAlex Stancu alex.stancu Data 25 februarie 2016 22:48:10
Problema Factorial Scor 10
Compilator c Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <stdio.h>

FILE *in;
FILE *out;

int zero(int n) {
    int k = 0;
    while(n >= 5) {
        k += n / 5;
        n /= 5;
    }
    return k;
}

int cautare_binara(int l, int r, int p) {
    int mid = r + (l - r) / 2;

    if(l > r)
        return -1;

    if(zero(mid) == p)
        return mid;

    if(zero(mid) > p) 
        return cautare_binara(l, mid - 1, p);
    
    else    
        return cautare_binara(mid + 1, r, p);    
}



int main() {
    in = fopen("fact.in", "r");
    out = fopen("fact.out", "w");
    int p, i, nr = 1, sol;

    fscanf(in, "%d", &p);

    for (i = 1; i <= 9; i++, nr *= 10);

    sol =  cautare_binara(1, nr, p);
    fprintf(out, "%d", sol);
 
    return 0;
}