#define Max 25
#include<cstdio>
double jie(int n)
{
double f=1;
for(int i=2;i<=n;i++)
f*=i;
return f;
}
int n;double a[Max],k;
int main(){
//freopen("input.txt","r",stdin);
a[1]=0;a[2]=1;
for(int i=3;i<=20;i++)a[i]=(i-1)*(a[i-1]+a[i-2]);
scanf("%d",&n);
while(n--)
{
int b;
scanf("%d",&b);
k=jie(b);
printf("%.2lf%%\n",100.0*a[b]/k);
}
return 0;
}
原文:http://blog.csdn.net/u013268685/article/details/19817375