题目 http://www.jobdu.com/link.php?url=http://ac.jobdu.com
错排公式 f(n) = (n-1)[f(n-2)+f(n-1)] (n>2)
#include<stdio.h>
int main(){
int n;
long long f[21];
while(scanf("%d",&n)!=EOF){
f[0]=f[1]=0;
f[2]=1;
for(int i=3;i<=n;i++)
f[i]=(i-1)*(f[i-2]+f[i-1]);
printf("%lld\n",f[n]);
}
return 0;
}