Pagini recente » Cod sursa (job #1013741) | Cod sursa (job #2831890) | Cod sursa (job #502184) | Cod sursa (job #461032) | Cod sursa (job #25863)
Cod sursa(job #25863)
#include<stdio.h>
long p,a,b,c,d;
void citire()
{
FILE * in = fopen("fact.in","r");
fscanf(in,"%ld",&p);
fclose(in);
}
int zero()
{
int k=0;
long x = p;
while(x>0)
{
if(x%10==0) ++k;
x/=10;
}
return k;
}
void interval()
{
int i,k=zero();
long nr = 2;
for(i=1;i<=k;i++)
{
nr *= 10;
}
if(nr<p)
{
d = nr*10;
c = nr/10;
b = nr*10*5;
a = nr/10*5;
}
else
{
d = nr;
c = nr/10;
b = nr*5;
a = nr/10*5;
}
}
long numar()
{
int ok=0;
long nrfinal = 0;
long zerop = 0;
interval();
if(p>d/2)
{
a=b/2+5;
ok=1;
}
else
{
b=b/2-5;
ok=2;
}
nrfinal = b;
if(ok==1)
{
zerop = d - p;
nrfinal = b - (zerop*5);
}
if(ok==2)
{
zerop = d/2 - p;
nrfinal = b - (zerop*5);
}
return nrfinal;
}
void tipar()
{
FILE * out = fopen("fact.out","w");
//fprintf(out,"[%ld , %ld]\n",a,b);
//fprintf(out,"[%ld , %ld]\n",c,d);
if(p==0) fprintf(out,"1");
else fprintf(out,"%ld",numar());
fclose(out);
}
int main()
{
citire();
numar();
tipar();
return 0;
}