Pagini recente » Cod sursa (job #788170) | Cod sursa (job #1723749)
#include<cstdio>
#include<cstdlib>
#include<ctime>
using namespace std;
int a,b,c,k;
int Digits(int x){
int answer=0;
while(x>0){
if(x%10==c)
answer++;
x/=10;
}
return answer;
}
double SolveBrute(){
int answer=0,i;
for(i=a;i<=b;i++)
if(Digits(i)>=k)
answer++;
return 1.0*answer/(b-a+1);
}
double SolveRandom(){
int answer=0,i;
for(i=1;i<=1000000;i++)
if(Digits(a+rand()%(b-a+1))>=k)
answer++;
return 1.0*answer/1000000;
}
int main(){
freopen("cifre.in","r",stdin);
freopen("cifre.out","w",stdout);
scanf("%d%d%d%d",&a,&b,&c,&k);
srand(time(0));
if(b-a<=100000)
printf("%.4f",SolveBrute());
else
printf("%.4f",SolveRandom());
return 0;
}