Pagini recente » Cod sursa (job #1585809) | Cod sursa (job #1284977) | Cod sursa (job #697219) | Cod sursa (job #1097464) | Cod sursa (job #1500214)
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
#define MAX 1000000
using namespace std;
ifstream f("cifre.in");
ofstream g("cifre.out");
long long int a,b,k,c,i,u,nr,p;
double t,t1,t2;
int nrd(int x)
{
int nr = 0;
do
{
nr += ((x % 10) == c);
x /= 10;
}while (x);
return nr;
}
int main()
{
f>>a>>b>>c>>k;
nr=b-a+1;
if(nr<MAX)
{for(i=a;i<=b;i++)
{ int x=i;
u=0;
while( x&& u!=k)
{
if(x%10==c) u++;
x/=10;
}
if(u>=k) p++;
}
t1=p;
t2=nr;
t=t1/t2;
g<<setprecision(4)<<t;}
else
{srand(time(NULL));
for(i = 0; i < MAX; ++ i)
if (nrd(rand() % (b - a + 1) + a) >= k)
++ p;
t1=p;
t=t1/MAX;
g<<setprecision(4)<<t;
}
}