#include<stdio.h> #include<string.h> #include<math.h> #include<stdlib.h> #include<algorithm> #include<iostream> #include<queue> #include<vector> using namespace std; #define N 1005 int main() { int n; long long f[N]={0,1,2,5}; for(int i=4;i<=20;i++) { f[i]=f[i-1]+(i-1)*f[i-2]+f[i-3]*(i-1)*(i-2)/2; } while(scanf("%d",&n),n) { printf("%lld\n",f[n]); } return 0; }
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 615 Accepted Submission(s): 257
原文:http://www.cnblogs.com/linliu/p/5005324.html