【题目描述】
求多少个个数的排列
,满足对于任意的
。
输入格式
一个整数。
输出格式
一个整数,表示答案。
输入样例
2
输出样例
1
数据范围与提示
对于的数据,
。
思路
有
种选法,设
,则
。当
时,问题等价于
个数时的选法;当
时,问题等价于
个数时的选法。得出递推关系式:
下面是C++版的代码。
#include <bits/stdc++.h>
using namespace std;
long long ans[21]= {0,0,1},n;
int main()
{
for(int i=3; i<=20; i++)
ans[i]=(i-1)*(ans[i-2]+ans[i-1]);
cin>>n;
cout<<ans[n];
return 0;
}