输入1个整数n,表示有1到n个整数,从小到大排列好,若每个数和他们的位置不相同,则认为是错排列,比如n=3时,正常是123,但是231、312就是2个错排列,输入1个整数n,请你求出其错排列的数量
输入
1个整数N (N<=10000)
输出
1个整数
样例
输入
3
输出
2
提示
都采用int即可
———————————————————————————————————————————
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int w[n+2];
w[1]=0;
w[2]=1;
for(int i=3;i<=n;i++)
{
w[i]=(i-1)*(w[i-1]+w[i-2]);
}
cout<<w[n];
return 0;
}