组合数是指从 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,即可得到对应的组合数。

C++ 组合数计算 - 递归实现

原文地址: https://www.cveoy.top/t/topic/bVgc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录