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 关注
- 1636 浏览
添加回答
举报
0/150
提交
取消