Pagini recente » Cod sursa (job #2170897) | Rating Vasilica Ionica (testt) | Cod sursa (job #534331) | Cod sursa (job #1436612) | Cod sursa (job #1551239)
#include <fstream>
#include <iomanip>
#include <ctime>
#include <cstdlib>
using namespace std;
const int kMaxOp = 1000000;
ifstream fin("cifre.in");
ofstream fout("cifre.out");
int A, B, C, K, dif, cnt;
double ans;
bool Check(int x) {
int cnt = 0;
do {
cnt += (x % 10 == C);
x /= 10;
} while (x);
return cnt >= K;
}
int main() {
fin >> A >> B >> C >> K;
dif = B - A + 1;
if (dif <= kMaxOp) {
for (int i = A; i <= B; ++i)
cnt += Check(i);
ans = double(cnt) / dif;
} else {
srand(time(0));
for (int i = 0; i < kMaxOp; ++i)
cnt += Check(rand() % dif + A);
ans = double(cnt) / kMaxOp;
}
fout << setprecision(4) << fixed << ans << "\n";
return 0;
}