http://acm.hdu.edu.cn/showproblem.php?pid=2048
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int i,test,people;
cin>>test;
double a[30];
a[1]=0;a[2]=1;
for(i=3;i<21;++i)
{
a[i]=(i-1)*(a[i-1]+a[i-2]);
}
while(test--)
{
int temp=1;
cin>>people;
for(i=1;i<=people;++i)
{
a[people]/=i;
}
printf("%.2lf%%\n",a[people]*100);
// %%是在批处理文件中变量符号,如果在CMD执行的话就应该是一个%.批处理文件在被解析的时候其中一个%被过滤掉,所以才用两个.
}
return 0;
}
递归问题一般从第n项开始考虑,再考虑n-1项