#include<stdio.h>
#define N 10
#define M 100005
int d,i,j,k;
double dp[M]={0,1,1.5},p[N]={1.0},np[N],res;

int main()
{
	for(i=1;i<N;i++)
	{
		double x=1.0/(double)(1<<i);
		p[i]=x*p[i-1];
		np[i]=(1-x)*p[i-1];
	}
	for(i=3;i<M;i++)
	{
		for(j=1;j<N&&i-j-1>=0;j++)
			dp[i]+=np[j]*(j+dp[i-j-1]);
		if(i-1<N)
			dp[i]+=i*p[i-1];
	}
	for(;scanf("%d",&d),d;)
	{
		printf("%f\n",dp[d]);
	}
	return 0;
}