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;} |
你不是要算组合数?分母中应该加括号
元芳怎么了
TA贡献1798条经验 获得超7个赞
定义一个求阶乘的函数,然后将改函数带入式子中需要求阶乘的地方即可。
求阶乘是一个典型的利用递归法的案例。
| 1234567 | int jiecheng(int N){ int res = N; if(N > 1) res *= jiecheng(N - 1); return res;} |
- 4 回答
- 0 关注
- 1769 浏览
添加回答
举报
0/150
提交
取消
