Pagini recente » Cod sursa (job #2836320) | Cod sursa (job #1786685) | Cod sursa (job #3268547) | Cod sursa (job #1898705) | Cod sursa (job #1837787)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
FILE *fin, *fout;
double prob;
int c, k;
inline bool nr(int n) {
short int ret;
ret = 0;
do {
ret += (n % 10 == c);
n /= 10;
}while(n > 0) ;
return ret >= k;
}
#define Q 1000121
int main() {
srand(time(0));
fin = fopen("cifre.in", "r");
fout = fopen("cifre.out", "w");
int a, b;
fscanf(fin, "%d%d%d%d", &a, &b, &c, &k);
double ans;
if(b-a+1<=Q){
int s=0;
for(int i=a; i<=b; i++)
s+=nr(i);
ans=s/(double)(b-a+1);
}else{
int s=0;
for(int i=0; i<Q; i++)
s+=nr(a+rand()%(b - a + 1));
ans=s/(double)Q;
}
fprintf(fout, "%.4lf", ans);
fclose(fin);
fclose(fout);
return 0;
}