编写c语言函数计算从n个元素中取m个元素的组合数C(m,n);要求:输入n和m为整型,m<=n,用
答案:1 悬赏:60
解决时间 2021-01-14 16:56
- 提问者网友:捧腹剧
- 2021-01-13 19:35
编写c语言函数计算从n个元素中取m个元素的组合数C(m,n);要求:输入n和m为整型,m<=n,用
最佳答案
- 二级知识专家网友:行雁书
- 2021-01-13 20:43
#include
int ifac(int n);
int nCr(int n, int r);
int main(void) {
int a, b, result;
printf("Input two numbers: ");
scanf("%d%d", &a, &b);
result = nCr(a, b);
if (result == 0) printf("Wrong!
");
else printf("%d
", result);
return 0;
}
int ifac(int n) {
int result = 1;
while (n > 1) result *= n--;
return result;
}
int nCr(int n, int r) {
if (n < r || n <= 0 || r <= 0) return 0;
return ifac(n) / (ifac(r) * ifac(n - r));
}
追问:ifac是什么意思不懂还有ncr
追答:ifac求整数阶乘。
nCr就是组合数C(m,n),我换了个名字而已。
根据网上搜的公式“n! / [r! * (n-r)!]”编了个程序。
追问:喔噢。。。谢谢啦你好。。。我可以和你做朋友么?
追答:随便啦
追问:可不可以帮我再编写个程序啊!可不可以帮我再编写个程序啊!
int ifac(int n);
int nCr(int n, int r);
int main(void) {
int a, b, result;
printf("Input two numbers: ");
scanf("%d%d", &a, &b);
result = nCr(a, b);
if (result == 0) printf("Wrong!
");
else printf("%d
", result);
return 0;
}
int ifac(int n) {
int result = 1;
while (n > 1) result *= n--;
return result;
}
int nCr(int n, int r) {
if (n < r || n <= 0 || r <= 0) return 0;
return ifac(n) / (ifac(r) * ifac(n - r));
}
追问:ifac是什么意思不懂还有ncr
追答:ifac求整数阶乘。
nCr就是组合数C(m,n),我换了个名字而已。
根据网上搜的公式“n! / [r! * (n-r)!]”编了个程序。
追问:喔噢。。。谢谢啦你好。。。我可以和你做朋友么?
追答:随便啦
追问:可不可以帮我再编写个程序啊!可不可以帮我再编写个程序啊!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息