#include <stdio.h>
int main()
{ //用递归算法求阶乘,空间复杂度太大,容易溢出;
int n,m,i; //因此选择双层循环法;
double sum=1.0,a; //a表示与n有关的项,不能在这里初始化为0;
scanf("%d",&n);
for(i=1;i<n+1;i++){ //用双重循环求阶乘与n+1项和;
a=1.0; //在循环内部初始化;
for(m=1;m<i+1;m++){
a=a*m;
}
sum+=1.0/a; //sum初始化的时候已经有了第一项的1;
}
printf("%.8lf\n",sum);
return 0;
}