1≤N≤100
代码:(此题应用高精度加动归方程求解,代码中未加高精度运算)
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,f[110];
int dp(int i)
{
if(i==1) return f[1];
if(i==2) return f[2];
else return f[i]=(i-1)*(dp(i-1)+dp(i-2));
}
int main()
{
scanf("%d",&n);
f[1]=0;f[2]=1;
printf("%d",dp(n));
return 0;
}