Pagini recente » Cod sursa (job #1211234) | Cod sursa (job #2039709) | Cod sursa (job #1227419) | Cod sursa (job #1230670) | Cod sursa (job #654915)
Cod sursa(job #654915)
/*
#include<iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int sol,A,B,C,K,cnt,x,Timp;
freopen("cifre.in","r",stdin);
scanf("%d%d%d%d",&A,&B,&C,&K);
Timp=1005000;
srand(time(NULL));
sol=0;
while(Timp)
{
x=A+rand()%(B-A+1);
//cout<<x<<"\n";
cnt=0;
while(x)
{
if(x%10==C) cnt++;
x/=10;
}
if(cnt>=K) sol++;
Timp--;
}
freopen("cifre.out","w",stdout);
printf("%.4f",(double)sol/1005000);
return 0;
}
*/
#include<iostream>
#include<fstream>
#include<algorithm>
#include<math.h>
#include <time.h>
#include<iomanip>
using namespace std;
int apar,sol;
int functie(const void *a, const void *b)
{
return *(int*)a - *(int*)b;
}
int main(void)
{
int a,b,c,k,q,x,i;
fstream f,g;
f.open("cifre.in",ios::in);
g.open("cifre.out",ios::out);
f>>a>>b>>c>>k;
if (b<=50000)
{
for (i=a;i<=b;i++)
{
x=i;
apar=0;
while (x)
{
q=x%10;
if (q==c)
apar++;
x=x/10;
}
if (apar>=k)
sol++;
}
g<<fixed<<setprecision(4)<<float(float (sol)/(double)(b-a+1));
}
else
{
int A=a,B=b,C=c,K=k;
int cnt=0,Timp=1005000;
srand(time(NULL));
sol=0;
while(Timp)
{
x=A+rand()%(B-A+1);
//cout<<x<<"\n";
cnt=0;
while(x)
{
if(x%10==C) cnt++;
x/=10;
}
if(cnt>=K) sol++;
Timp--;
}
g<<fixed<<setprecision(4)<<(double)sol/1005000;
}
}