Pagini recente » Cod sursa (job #3220944) | Cod sursa (job #161007) | Cod sursa (job #2297201) | Cod sursa (job #1630586) | Cod sursa (job #36045)
Cod sursa(job #36045)
#include <fstream.h>
#include<iomanip.h>
ifstream f("cifre.in");
ofstream g("cifre.out");
long n,k,nt=0,c[10],p10[10];
long i,p,pcifra,a,b,nr,nnr;
int main()
{
f>>a>>b>>nr>>k;
c[0]=0;
p10[0]=1;
for(i=1;i<10;i++)
{
c[i]=9*c[i-1]+p10[i-1];
p10[i]=p10[i-1]*10;
}
nnr=0;
for(i=a;i<=b;i++)
{
n=i;
nt=0;
if(n==k)
nt++;
for(p=9;p>=1;p--)
if(n>=p10[p])
{
pcifra=n/p10[p];
if(pcifra>k)
{
nt=nt+p10[p];
nt=nt+(pcifra-1)*c[p];
}
if(pcifra==k)
{
nt=nt+pcifra*c[p];
nt=nt+n%p10[p]+1;
break;
}
if(pcifra<k)
nt=nt+pcifra*c[p];
n=n%p10[p];
}
if(nt>=nr)
nnr++;}
p=b-a+1;
g<<setprecision(4)<<(float)nnr/p;
f.close();
g.close();
return 0;
}