为了账号安全,请及时绑定邮箱和手机立即绑定

C++程序设计 C=n!/(n-m)!m!?

C++程序设计 C=n!/(n-m)!m!?

浮云间 2019-05-29 10:06:13
C++程序设计 C=n!/(n-m)!m!
查看完整描述

4 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

因为你的fac函数里面直接用n*=i,这样n不断增大,导致i一直小于n,死循环了

给你改了,代码如下,请采纳

123456789101112131415161718192021222324#include<iostream> #include <cmath> using namespace std;double fac(double n,double m){ int i; int n1=1,m1=1; for(i=1;i<=n;++i)  n1*=i; for(i=1;i<=m;++i)  m1*=i; double nm = 1; for(i=1;i<=n-m;++i)  nm*=i; double y = n1/(nm*m1); return y;}int main(){ double y = fac(3,2); cout<<y<<endl; system("pause"); return 0;}

你不是要算组合数?分母中应该加括号


查看完整回答
反对 回复 2019-06-01
?
PIPIONE

TA贡献1829条经验 获得超9个赞

for(i=1;i<=n;++i)
n*=i;
不能用n*=i,改变了n的值,循环就不是n次了,也不是n!了。
下面的m!的循环也是这样。

查看完整回答
反对 回复 2019-06-01
?
元芳怎么了

TA贡献1798条经验 获得超7个赞

定义一个求阶乘的函数,然后将改函数带入式子中需要求阶乘的地方即可。

求阶乘是一个典型的利用递归法的案例。

1234567int jiecheng(int N){    int res = N;    if(N > 1)        res *= jiecheng(N - 1);    return res;}


查看完整回答
反对 回复 2019-06-01
  • 4 回答
  • 0 关注
  • 1636 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信