C语言求组合数
这是一个使用C语言函数的示例:计算组合数 C(m,n) 的值(m≤10)。
组合数 C(m,n) 可以理解为从 m 个数中任意取出 n 个数的所有情况数。在数学中,求组合数 C(m,n) 的值可以借助 m 和 n 的阶乘来计算,计算公式为:
从上面的计算公式可以看出,求组合数 C(m,n) 的值,需要进行三次阶乘运算。为了简化程序,可以把阶乘运算设计为函数 fac(x),求组合数时调用该函数即可。
代码清单 1:计算组合数 C(m,n) 的值(m≤10)
运行结果为:
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
组合数 C(m,n) 可以理解为从 m 个数中任意取出 n 个数的所有情况数。在数学中,求组合数 C(m,n) 的值可以借助 m 和 n 的阶乘来计算,计算公式为:

从上面的计算公式可以看出,求组合数 C(m,n) 的值,需要进行三次阶乘运算。为了简化程序,可以把阶乘运算设计为函数 fac(x),求组合数时调用该函数即可。
代码清单 1:计算组合数 C(m,n) 的值(m≤10)
#include <stdio.h> #include <stdlib.h> long int fac(int x) //定义阶乘函数 { int i; long int s = 1; for(i=1;i<=x;i++) s *= i; return s; } int main( ) //主函数 { int m, n; printf("输入m和n(m≤10,n≤m):\n"); scanf("%d %d",&m, &n); printf("C(m,n)=%ld\n",fac(m)/(fac(m-n)*fac(n))); system("pause"); return 0; }
运行结果为:
输入m和n(m≤10,n≤m):
11 5
C(m,n)=462
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。