本题要求编写程序,根据公式c n m = m!(n−m)! n! 算出从n个不同元素中取出m个元素(m≤n)的组合数。 建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。 输入格式: 输入在一行中给出两个正整数m和n(m≤n),以空格分隔。 输出格式: 按照格式“result = 组合数计算结果”输出。题目保证结果在double类型范围内。 输入样例: 2 7 输出样例: result = 21
时间: 2023-05-31 08:19:10 浏览: 86
### 回答1:
题目要求编写程序,根据公式求出从n个不同元素中取出m个元素(m≤n)的组合数。建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。输入格式: 输入在一行中给出两个正整数m和n(m≤n),以空格分隔。输出格式: 按照格式“result = 计算结果”输出。题目保证结果在double类型范围内。输入样例: 2 7 输出样例: result = 21
### 回答2:
本题要求我们编写程序,根据公式c(n,m)=m!/(n-m)!n!,算出从n个不同元素中取出m个元素(m≤n)的组合数。我们可以通过定义一个函数来计算阶乘,再利用这个函数计算出组合数。具体方法如下:
首先,我们定义一个函数 fact(n),用于计算n的阶乘。由于题目保证结果在double类型范围内,因此我们可将函数类型设为double,这样就可以处理比较大的数字了。
然后,我们输入两个正整数m和n,并按空格分隔。
接下来,我们按照公式c(n,m)=m!/(n-m)!n!进行计算。首先,我们调用函数fact(m)计算出m!,再调用函数fact(n-m)计算出(n-m)!,最后调用函数fact(n)计算出n!。将它们代入公式中即可求出组合数c(n,m)的值。
最后,我们按照格式“result = 组合数计算结果”输出。
以下为示例代码:
### 回答3:
题目分析:
本题要求我们计算从n个不同元素中取出m个元素(m≤n)的组合数。
组合数的计算公式为:
即 C(n, m) = n! / (m!(n-m)!)
因此,需要先定义一个计算阶乘的函数 fact(n),然后再根据公式计算组合数并输出结果。
代码实现:
首先定义计算阶乘的函数 fact(n):
double fact(int n) {
double res = 1.0;
for (int i = 1; i <= n; i++) {
res *= i;
}
return res;
}
然后在主函数中读入输入变量 m 和 n,并计算组合数:
int main() {
int m, n;
double res;
scanf("%d %d", &m, &n);
res = fact(m) / (fact(n-m) * fact(n));
printf("result = %.0f\n", res);
return 0;
}
注意,在计算中要注意数据类型,为了保证精度需要使用 double 类型。
完整代码如下:
阅读全文