#include <stdio.h>
#include <stdlib.h>
#define fr(i,a,b) for(i=a;i<b;++i)
#define rf(i,a,b) for(i=b-1;i>=a;--i)
int C[10][10];
int nine[10];
char cool(int x,int c,int k){
int s=0;
while(x){s+=x%10==c;x/=10;}
return s>=k;
}
int get(int a,int c,int k){
int b[10]={1};
int i,d=0;
while(a){
int A=a%10;
++d;
if(A==c){
rf(i,1,10)b[i]=b[i-1];
b[0]=0;
}
else if(A>c){
fr(i,0,d)b[i+1]+=C[d-1][i]*nine[d-i-1];
--A;
}
fr(i,0,d)b[i]+=A*C[d-1][i]*nine[d-i-1];
a/=10;
}
d=0;
fr(i,k,10)d+=b[i];
return d;
}
int main(){
freopen("cifre.in","r",stdin);
freopen("cifre.out","w",stdout);
int j,i,a,b,c,k;
fr(i,0,10)fr(j,0,i+1)C[i][j]=j?C[i-1][j]+C[i-1][j-1]:1;
nine[0]=1;
fr(i,1,10)nine[i]=nine[i-1]*9;
scanf("%i%i%i%i",&a,&b,&c,&k);
int s1=get(b,c,k)-get(a-1,c,k),s2=b-a+1;
printf("%.4f\n",(float)s1/s2);
return 0;
}