Select Code
#include<iostream>
using namespace std;
int main()
{
int n; cin >> n;
while (n--)
{
int a, b; cin >> a >> b; int p = b, q = b;
long long c = 1, d = 1;
while (p--)
{
c = a*c;
a = a - 1;
d = d*b;
b = b - 1;
}
long long f[21];
f[1] = 0; f[2] = 1;
for (int i = 3; i <= q; i++)
{
f[i] = (i - 1)*(f[i - 1] + f[i - 2]);
}
long long g; g = f[q] *( c / d);
cout << g << endl;
}
return 0;
}根据递公式 a[n]=(n-1)(a[n-1]+a[n-2]);可得 n个新郎共有a[n]种错误的情况;其中a[1]=0;a[2]=1;
本文介绍了一个使用C++实现的程序,该程序通过递归公式计算特定情况下的排列组合数,并结合了递推算法来提高效率。核心算法涉及整数运算、循环结构及数组的使用。
414

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



