C语言递归实现组合数计算 - 从n个元素中取m个的组合个数
可以使用递归方式求解从n个元素中取m个的组合个数。假设组合数为C(n, m),可以使用以下递归公式进行求解:
C(n, m) = C(n-1, m-1) + C(n-1, m)
其中C(n, m)表示从n个元素中取m个的组合个数。递归的边界条件是当m等于0或n等于m时,组合数为1:
C(n, 0) = C(n, n) = 1
下面是使用递归方式实现求解组合个数的C语言代码:
#include <stdio.h>
int combination(int n, int m) {
// 边界条件
if (m == 0 || n == m) {
return 1;
}
// 递归求解
return combination(n-1, m-1) + combination(n-1, m);
}
int main() {
int n, m;
printf("请输入n和m的值:");
scanf("%d %d", &n, &m);
printf("%d个元素中取%d个的组合个数为:%d\n", n, m, combination(n, m));
return 0;
}
在上面的代码中,通过递归方式计算从n个元素中取m个的组合个数,并在主函数中输入n和m的值进行测试。
原文地址: https://www.cveoy.top/t/topic/o717 著作权归作者所有。请勿转载和采集!