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 關注
- 1689 瀏覽
添加回答
舉報
0/150
提交
取消