1.关键错排的理解 当1不放在k时 n个元素去掉k而k原来的位置可以看成1现在的位置(不能放的)变成了n-1个元素的错排
2.记忆化搜索 你后面要写函数啊
include <bits/stdc++.h>
using namespace std;
long long dp[25];long long s[25];
long long f(int x)
{
if(dp[x]!=-1) return dp[x];
return dp[x]=(f(x-2)+f(x-1))(x-1);
}
long long ss(int x)
{
if(s[x]!=-1) return s[x];
return s[x]=ss(x-1)x;
}
int main()
{
int c;cin>>c;
while(c--)
{
int n;cin>>n;
memset(dp,-1,sizeof(dp));
memset(s,-1,sizeof(s));
dp[1]=0;dp[2]=1;dp[3]=2;
s[1]=1;
double res=double(f(n))/ss(n)*100;
printf("%.2lf%%\n",res);
}
}