错排公式,推导过程见百度
有一个大坑是输出内容有%号时必须用printf("%%"),不能用printf("%")
#include<cstdio>
#include<iostream>
using namespace std;
long long int factorial(int n)
{
long long m=1;
for(int i=2;i<=n;i++)
{
m*=i;
}
return m;
}
int main()
{
int n,m;
long long d[22];
d[0]=d[1]=0,d[2]=1;
for(int i=3;i<22;i++)
{
d[i]=(i-1)*(d[i-1]+d[i-2]);
}
scanf("%d",&n);
while(n--)
{
scanf("%d",&m);
printf("%.2lf%%\n",d[m]*100.0/factorial(m));
}
return 0;
}
本文介绍错排公式的概念及其在C++中的具体实现方法。通过一个C++程序示例展示了如何使用递归算法计算特定数值的错排数,并将其与全排列数进行比较得出百分比结果。
1071

被折叠的 条评论
为什么被折叠?



