用c语言简单实现s=m!/(m-n)!n!
时间: 2023-08-28 18:05:14 浏览: 128
可以使用循环来实现阶乘和组合数的计算,以下是使用C语言简单实现该公式的代码:
```c
#include <stdio.h>
int main() {
int m, n, i;
unsigned long long mFactorial = 1, nFactorial = 1, mMinusNFactorial = 1, s;
printf("请输入m和n的值(中间用空格隔开):");
scanf("%d %d", &m, &n);
for (i = 1; i <= m; i++) {
mFactorial *= i; // 计算m的阶乘
if (i <= n) {
nFactorial *= i; // 计算n的阶乘
}
if (i <= m - n) {
mMinusNFactorial *= i; // 计算m-n的阶乘
}
}
s = mFactorial / (mMinusNFactorial * nFactorial); // 计算组合数
printf("%d个元素中取%d个元素的组合数为:%llu\n", m, n, s);
return 0;
}
```
在该程序中,使用循环计算m、n和m-n的阶乘,并根据组合数学公式计算组合数s。最后输出计算结果。需要注意的是,当m和n的值较大时,可能会导致计算结果溢出,因此可以使用unsigned long long类型来存储计算结果。
阅读全文