一个错排公式直接解决 水过
#include<stdio.h>
long long num[25];
void chart( )
{
num[1] = 0;
num[2] = 1;
for( int i = 3; i < 25; ++i )
num[i] = ( num[i-1] + num[i-2] ) * ( i - 1 );
}
int main( )
{
chart( );
int n;
while( scanf( "%d",&n ) != EOF )
printf( "%I64d\n",num[n] );
return 0;
}