Pagini recente » Cod sursa (job #1851085) | Cod sursa (job #756019) | Cod sursa (job #135008) | Cod sursa (job #3124150) | Cod sursa (job #1837774)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
FILE *fin, *fout;
double prob;
int c, k;
inline bool nr(int n) {
int ret;
ret = 0;
while(n > 0) {
ret += (n % 10 == c);
n /= 10;
}
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 = 0;
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;
}