Cod sursa(job #313035)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 7 mai 2009 20:20:03
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <stdio.h>

inline int BS2(int x)
{
    int lo, hi, mid, last = 0;

    for (lo = 1, hi = 12; lo <= hi; )
    {
	mid = lo + (hi-lo) / 2;
	if (v[mid] <= x) last = mid, lo = mid+1;
	else hi = mid-1;
    }
    return last;
}

int main()
{
 FILE *f,*g;
 long p,n=0,i,d5=0,v[14][3];
 v[1][1]=25;
 v[1][1]=6;
 for (i=2;i<13;i++) {v[i][1]=v[i-1][1]*5;v[i][2]=v[i-1][1]+v[i-1][2];};
 f=fopen("fact.in","r");
 fscanf(f,"%ld",&p);
 fclose(f);

 do
 {
  n=n+v[BS2(p)];
  p=p-v[BS2(p)];
 }
 while (p>24);



 g=fopen("fact.out","w");
 fprintf(g,"%d",n);
 fclose(g);
 return 0;
}