Pagini recente » Cod sursa (job #2400118) | Cod sursa (job #1508952)
#include <cstdio>
#define NMAX 10000
int n,a,b,c,k,nr,i;
int v[]={6561,2916,487,35,1};
double p;
int solve(int nr,int c)
{
int k=0;
while(nr>0)
{
if(nr%10==c)
k++;
nr/=10;
}
return k;
}
int main()
{
freopen("cifre.in","r", stdin);
freopen("cifre.out","w", stdout);
scanf("%d%d%d%d",&a,&b,&c,&k);
p=b-a+1;
if(b-a>=NMAX)
{
while(a%NMAX)
{
if(solve(a,c)>=k)
n++;
a++;
}
while(b-a>=NMAX)
{
nr=solve(a/NMAX,c);
for(i=0;i<=4;i++)
if(nr>=k-i)
n+=v[i];
a+=NMAX;
}
}
while(a<=b)
{
if(solve(a,c)>=k)
n++;
a++;
}
printf("%lf",n/p);
return 0;
}