代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,i,j;
long long int a[21];
while(cin>>n)
{
a[0]=0;
a[1]=0;a[2]=1;;
for(i=3;i<=n;i++)
a[i]=(i-1)*(a[i-1]+a[i-2]);
cout<<a[n]<<endl;
}
return 0;
}
分析:
由题目得知,第I次的情况为I-1和i-2两次之和的i-1倍,由此写出递推公式即可;