練習2-18 求組合數(15 分)
本題要求編寫程式,根據公式cnm=m!(n−m)!n!算出從n個不同元素中取出m個元素(m≤n)的組合數。
建議定義和呼叫函式fact(n)
計算n!
,其中n
的型別是int
,函式型別是double
。
輸入在一行中給出兩個正整數m和n(m≤n),以空格分隔。
按照格式「result = 組合數計算結果」輸出。題目保證結果在double
型別範圍內。
2 7
result = 21
分析:本題實際上就是求階乘的問題,fact函式求出階乘,呼叫輸出的時候再進行組合運算就可以了。
需要注意的點:
(1)階乘的初始值要設定為1
(2)由於函式fact的返回值型別是double,所以在主函式中呼叫的時候我們也用double型別的變數來接收cnm=m!(n−m)!n!的計算結果,但是輸出格式採用「%.0f」(即指定輸出時不要小數部分)即可
**:
#define _crt_secure_no_warnings 1
#include#includedouble fact(int n)//求階乘
return pro;
}int main()
fact函式while迴圈寫法:
double fact(int n)
return pro;
}
測試結果:
練習2 18 求組合數
練習2 18 求組合數 15 分 本題要求編寫程式,根據公式c n m m n m n 算出從n個不同元素中取出m個元素 m n 的組合數。建議定義和呼叫函式fact n 計算n 其中n的型別是int,函式型別是double。輸入格式 輸入在一行中給出兩個正整數m和n m n 以空格分隔。輸出格式 ...
練習2 18 求組合數
本題要求編寫程式,根據公式c n m m n m n 算出從n個不同元素中取出m個元素 m n 的組合數。建議定義和呼叫函式fact n 計算n 其中n的型別是int,函式型別是double。輸入在一行中給出兩個正整數m和n m n 以空格分隔。按照格式 result 組合數計算結果 輸出。題目保證...
練習2 18 求組合數
本題要求編寫程式,根據公式c n m m n m n 算出從n個不同元素中取出m個元素 m n 的組合數。建議定義和呼叫函式fact n 計算n 其中n的型別是int,函式型別是double。輸入格式 輸入在一行中給出兩個正整數m和n m n 以空格分隔。輸出格式 按照格式 result 組合數計算...