Pagini recente » Cod sursa (job #1225530) | Cod sursa (job #2315433) | Monitorul de evaluare | Cod sursa (job #1635238) | Cod sursa (job #1837814)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
FILE *fin, *fout;
int c, k;
#define Q 1000121
inline bool nr(int x){
short int ans=0;
do{
ans+=(x%10==c);
x/=10;
}while(x);
return ans>=k;
}
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;
}