C++ 组合数计算 - 递归实现
组合数是指从 n 个不同元素中取出 m 个元素(m <= n)的组合数目。组合数记作 C(n, m),也可以表示为 C(n, m) = n! / (m! * (n-m)!),其中 n! 表示 n 的阶乘。
在 C++ 中,可以使用递归方式来计算组合数。下面是一个示例代码:
#include<iostream>
using namespace std;
int combination(int n, int m) {
if (m == 0 || n == m) {
return 1;
} else {
return combination(n-1, m-1) + combination(n-1, m);
}
}
int main() {
int n, m;
cout << "请输入 n 和 m:";
cin >> n >> m;
cout << "C('" << n << "', '" << m << "') = " << combination(n, m) << endl;
return 0;
}
这段代码中,combination 函数使用递归方式计算组合数。当 m 为 0 或者 n 等于 m 时,返回 1;否则,计算 C(n-1, m-1) 和 C(n-1, m) 的和。
在主函数中,首先接收用户输入的 n 和 m,然后调用 combination 函数计算组合数,并输出结果。
运行代码,输入 n 和 m,即可得到对应的组合数。
原文地址: https://www.cveoy.top/t/topic/bVgc 著作权归作者所有。请勿转载和采集!