wzhd大佬的24行代码%%%
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
long long dp[1005][200005];
int n,cnt=1;
int main()
{
cin>>n;
dp[2][1] = 1;
for(int i = 3;i <= n;i ++)
for(int j = 1;j <= cnt;j ++)
{
dp[i][j] += (i-1) * (dp[i-1][j] + dp[i-2][j]);
if(dp[i][j] > 1000000000) dp[i][j+1] += dp[i][j] / 1000000000,dp[i][j] %= 1000000000;
if(dp[i][j+1]) cnt++;
}
int t;
for(t = cnt;!dp[n][t];t --);
cout<<dp[n][t];
for(int j = t-1;j >= 1;j --)
printf("%09d",dp[n][j]);
}