Pagini recente » Cod sursa (job #1205956) | Cod sursa (job #93447) | Cod sursa (job #2118601) | Cod sursa (job #1602311) | Cod sursa (job #500575)
Cod sursa(job #500575)
# include <cstdio>
const char *FIN = "cifre.in", *FOU = "cifre.out" ;
long a,b,c,k,fav,pos,n;
double posib,favor,prob;
long cif(long aa);
int main ( void ) {
freopen("cifre.in","rt",stdin);
freopen("cifre.out","wt",stdout);
scanf("%ld%ld%ld%ld",&a,&b,&c,&k);
if(a+10000<=b) {
while(a%10000) {
n=cif(a);
if(n>=k)fav++;
a++;
pos++;
}
while(a+10000<=b) {
n=cif(a/10000);
/*if(n+4>=k)fav++;
if(n+3>=k)fav+=105;
if(n+2>=k)fav+=565;
if(n+1>=k)fav+=1916;
if(n>=k)fav+=7413;*/
fav += 10000 ;
a+=10000;
pos+=10000;
}
}
while(a<=b) {
n=cif(a);
if(n>=k)fav++;
a++;
pos++;
}
posib=(double)pos;
favor=(double)fav;
prob=favor/posib;
printf("%.4lf\n",prob);
return 0;
}
long cif(long aa) {
long bb=aa,ret=0;
while(bb) {
if(bb%10==c)ret++;
bb/=10;
}
return ret;
}