#include<stdio.h> int main() { __int64 a[21],n; a[1]=0; a[2]=1; for(n=3;n<21;n++) a[n]=(n-1)*(a[n-1]+a[n-2]); while(scanf("%I64d",&n)!=EOF) printf("%I64d\n",a[n]); return 0; }
http://acm.hdu.edu.cn/showproblem.php?pid=1465
记得用__int64