#include <stdio.h>
int cif (int a, int b, int c, int k)
{
int i, x, n, s=0;
for (i=a; i<=b; i++) {
x=i;
n=0;
while (x>0) {
if (x%10==c) {
n++;
}
x/=10;
if (n>=k) {
s++;
break;
}
}
}
return s;
}
int cif2 (int a, int c) {
int x;
bool b=false;
x=a/10000;
while (x>0) {
if (x%10==c) {
b=true;
break;
}
x/=10;
}
if (b) {
return 1;
} else {
return 0;
}
}
int main ()
{
freopen("cifre.in", "r", stdin);
freopen("cifre.out", "w", stdout);
int a, b, c, k, i, x, y, m, n, s=0, st=0;
scanf("%d %d %d %d", &a, &b, &c, &k);
if (b-a<10000) {
s=cif(a, b, c, k);
} else {
x=10000;
y=1000000000;
while (x<a) {
x+=10000;
}
while(y>b) {
y-=10000;
}
s=cif(a, x, c, k);
s+=cif(y, b, c, k);
for (i=x; i<y; i+=10000) {
if (st==0 && cif2(i, c)==0) {
st=cif(i, i+9999, c, k);
s+=st;
} else if (cif2(i, c)!=0) {
s+=cif(i, i+9999, c, k);
} else {
s+=st;
}
}
}
float p = (float) s / (float) (b-a+1);
printf("%.4lf", p);
return 0;
}