//poj 1322 AC
//sep9
#include <iostream>
using namespace std;
int c,n,m;
double dp[2][128];
int main()
{
while(scanf("%d",&c)==1&&c){
scanf("%d%d",&n,&m);
if(m>c||m>n||(m+n)%2){
puts("0.000");
continue;
}
if(n>1000){
n=1000+n%2;
}
memset(dp,0,sizeof(dp));
dp[0][0]=1.0;
for(int i=1;i<=n;++i)
for(int j=0;j<=i&&j<=c;++j){
dp[i%2][j]=0.0;
if((i+j)%2) continue;
if(j>0)
dp[i%2][j]+=dp[1-i%2][j-1]*((c-j+1.0)*1.0/c);
if(j+1<=i&&j+1<=c)
dp[i%2][j]+=dp[1-i%2][j+1]*((j+1.0)*1.0/c);
}
printf("%.3lf\n",dp[n%2][m]);
}
return 0;
}
//poj 1322 矩阵乘法解法 tle
//sep9
#include <iostream>
using namespace std;
int c,n,m;
const int MAXC=128;
double pow[12][MAXC][MAXC];
double tmp[MAXC][MAXC],ans[MAXC][MAXC];
void copy(double t[][MAXC],double s[][MAXC]){
for(int i=0;i<=c;++i)
for(int j=0;j<=c;++j)
t[i][j]=s[i][j];
}
void mul_mat(double C[][MAXC],double A[][MAXC],double B[][MAXC])
{
for(int i=0;i<=c;++i)
for(int j=0;j<=c;++j)
C[i][j]=0.0;
for(int k=0;k<=c;++k)
for(int i=0;i<=c;++i)
for(int j=0;j<=c;++j)
C[i][j]+=A[i][k]*B[k][j];
return ;
}
void cal_pow()
{
for(int i=1;i<10;++i)
mul_mat(pow[i],pow[i-1],pow[i-1]);
}
int main()
{
while(scanf("%d",&c)==1&&c){
scanf("%d%d",&n,&m);
if(m>c||m>n){
puts("0.000");
}
if(n>1000){
n=1000+n%2;
}
for(int i=0;i<=c;++i)
for(int j=0;j<=c;++j)
pow[0][i][j]=0.0;
for(int i=1;i<=c;++i){
pow[0][i-1][i]=1.0*i/c;
pow[0][i][i-1]=(c+1-1.0*i)/c;
}
cal_pow();
for(int i=0;i<=c;++i)
for(int j=0;j<=c;++j)
ans[i][j]=0.0;
for(int i=0;i<=c;++i)
ans[i][i]=1.0;
for(int e=0;e<10;++e)
if(n&(1<<e)){
copy(tmp,ans);
mul_mat(ans,tmp,pow[e]);
}
printf("%.3lf\n",ans[m][0]);
}
return 0;
}