#include<iostream>
using namespace std;
int main()
{
long long a[21]={0};
a[0]=0,a[1]=0,a[2]=1;
long long b[21]={0};
b[0]=0,b[1]=1,b[2]=2;
for(int i=3;i<21;i++)
{
a[i]=(i-1)*(a[i-1]+a[i-2]);
b[i]=i*b[i-1];
}
int n;
while(cin>>n)
{
printf("%.2f%%\n", 100.0*a[n] /b[n]);
}
return 0;
}
// 使用递归思想 数组a表示前n个人都拿错的情况,a肯定没拿自己名字,即共有n-1种可能拿错,其中假设a拿了b的且b拿了a的,那么就等于算n-2个人都拿错的情况,对于b来说也可能没拿a的,那么就等于计算n-1个人都拿错的情况
//数组b表示n的全排列 即所有可能拿的情况
// "%.2f%%"用于类似50.00%输出格式 %%表示"%"