Cod sursa(job #313037)

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

long v[14][3];

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][2] <= x) last = mid, lo = mid+1;
	else hi = mid-1;
    }
    return last;
}

int main()
{
 FILE *f,*g;
 long p,n=0,i;
 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)][1];
  p=p-v[BS2(p)][2];
 }
 while (p>24);



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