Pagini recente » Cod sursa (job #2222620) | Cod sursa (job #2027210) | Cod sursa (job #2205192) | Cod sursa (job #1793403) | Cod sursa (job #1167138)
#include<stdio.h>
#define MAX 10000
inline int ncif(int nr,int c)
{
int cont=0;
while(nr)
{
if(nr%10==c)
cont++;
nr/=10;
}
return cont;
}
int v[]={6561,2916,487,35,1};
int main()
{
FILE *fin,*fout;
fin=fopen("cifre.in","r");
fout=fopen("cifre.out","w");
int a,b,c,k;
fscanf(fin,"%d%d%d%d",&a,&b,&c,&k);
double p=b-a+1;
int n=0;
if(b-a>=MAX)
{
while(a%MAX)
{
if(ncif(a,c)>=k)
n++;
a++;
}
while(b-a>=MAX)
{
int nr=ncif(a/MAX,c),i;
for(i=0;i<=4;i++)
if(nr>=k-i)
n+=v[i];
a+=MAX;
}
}
while(a<=b)
{
if(ncif(a,c)>=k)
n++;
a++;
}
fprintf(fout,"%f",n/p);
return 0;
}