本题要求编写程序,根据公式c n m \t = m!(n−m)! n! \t 算出从n个不同元素中取出m个元素(m≤n)的组合数。 建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。
时间: 2023-04-26 14:05:25 浏览: 255
可以按照题目要求编写一个计算组合数的程序,其中需要定义一个函数fact(n)来计算n的阶乘。具体实现方法如下:
1. 定义一个函数fact(n),用来计算n的阶乘。函数的输入参数是一个整数n,返回值是一个双精度浮点数。
2. 在主函数中,读入n和m的值,并调用fact(n)、fact(m)和fact(n-m)函数来计算组合数的值。
3. 根据公式c(n,m) = m!(n-m)! / n!,计算出组合数的值,并输出结果。
下面是具体的代码实现:
#include <stdio.h>
double fact(int n)
{
double result = 1.;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
int main()
{
int n, m;
printf("请输入n和m的值:");
scanf("%d%d", &n, &m);
double c = fact(m) * fact(n-m) / fact(n);
printf("从%d个不同元素中取出%d个元素的组合数为%.f\n", n, m, c);
return ;
}
在这个程序中,我们定义了一个函数fact(n),用来计算n的阶乘。在主函数中,我们读入n和m的值,并调用fact(n)、fact(m)和fact(n-m)函数来计算组合数的值。最后,根据公式c(n,m) = m!(n-m)! / n!,计算出组合数的值,并输出结果。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)