Pagini recente » Cod sursa (job #1628788) | Cod sursa (job #1207713) | Cod sursa (job #220630) | Cod sursa (job #3242174) | Cod sursa (job #2685601)
#include<fstream>
#include<iostream>
#include<iomanip>
using namespace std;
int cifre(int n,int C)
{
int aparitie = 0;
while (n)
{
if (n % 10 == C)
{
aparitie++;
}
n /= 10;
}
return aparitie;
}
int main()
{
long long A, B, C, K, x, p=0, n, nr=0;
ifstream fin("cifre.in");
ofstream fout("cifre.out");
fin >> A >> B >> C>> K;
if (B - A >= 10000)
{
while (A % 10000)
{
if (cifre(A,C) >= K)
{
nr++;
}
A++;
p++;
}
for (x = 0; B - A >= 10000; A += 10000,p += 10000)
{
x = cifre(A / 10000,C);
if (x >= K)
{
nr += 6561;
}
if (x >= K- 1)
{
nr += 2916;
}
if (x >= K - 2)
{
nr += 487;
}
if (x >= K - 3)
{
nr += 35;
}
if (x >= K - 4)
{
nr++;
}
}
}
while (A <= B)
{
if (cifre(A,C) >= K)
{
nr++;
}
A++;
p++;
}
fout << fixed << setprecision(4)<< (double)nr / p;
return 0;
}