本来很简单的一个题,却因为取模的问题WA了几次~~~无语~
这个题就是个错排,因为存在递推式的,也没什么难度,见代码吧~
代码:
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const long long mod=1000000007;
long long a[101];
int main()
{
int n;
a[1]=0;
a[2]=1;
for(int i=3;i<=100;i++)
{
a[i]=((i-1)*(a[i-1]+a[i-2]));
a[i]%=mod;
}
int cas;
scanf("%d",&cas);
while(cas--)
{
scanf("%d",&n);
printf("%lld\n",a[n]);
}
return 0;
}