#include<iostream>
using namespace std;
long long int C(int a,int b)///求组合数
{
long long int res=1;
for(int i=1;i<=a;i++)
{
res*=(b-i+1);
res/=i;
}
return res;
}
int main()
{
int x;
long long int a[30]={1,0,1};
for(int i=3;i<30;i++)
a[i]=(i-1)*(a[i-1]+a[i-2]);
while(cin>>x&&x)
{
long long int res=0;
for(int i=0;i<=x/2;i++)
res+=C(i,x)*a[i];///相乘得不同组合的错排种数
cout<<res<<endl;
}
return 0;
}
.....
RPG的错排
最新推荐文章于 2019-08-22 16:49:27 发布