/*
分析:
i代表人数,l代表组数,有f[i][l]=f[i-1][l-1]+f[i-1][l]*l。
解释:
前者是第i个人自成一队;后者是第i个人并入已有的队列。
特别的,当i==l的时候:f[i][l]=1;
*/
#include"stdio.h" #include"string.h" int main() { __int64 f[25][25]; int i,l,j; int T; int n; __int64 sum; memset(f,0,sizeof(f)); f[1][1]=1; for(i=2;i<25;i++) { for(l=1;l<=i;l++) { if(l==i) { f[i][l]=1; continue; } f[i][l]=f[i-1][l-1]+f[i-1][l]*l; } } scanf("%d",&T); while(T--) { scanf("%d",&n); sum=0; for(i=1;i<=n;i++) sum+=f[n][i]; printf("%I64d\n",sum); } return 0; }