关键点之一:错排公式的运用!
#include <string.h>
#include <stdio.h>
using namespace std;
long long int data[21];
void init()
{
int i;
data[1]=0;
data[2]=1;
for(i=3;i<=20;i++)
data[i]=(i-1)*(data[i-1]+data[i-2]);//错排公式
return;
}
int main()
{
int m;
init();
while(scanf("%d",&m)!=EOF)
{
cout<<data[m]<<endl;
}
return 0;
}