1101 求組合數(shù)

題目描述
?計(jì)算從n個(gè)人中選擇k個(gè)人組成一個(gè)委員會(huì)的不同組合數(shù)。顯然,這個(gè)組合數(shù)是m!/(k!(m-k)!)。要求編寫函數(shù)fact(),實(shí)現(xiàn)求一個(gè)數(shù)的階乘功能,在主函數(shù)中調(diào)用此函數(shù)。??
? ? int fact(int n)
? ? {
? ? ? ? //函數(shù)返回值為n的階乘。
? ? }??
對(duì)于C/C++代碼的提交,本題要求必須通過定義fact函數(shù)和main函數(shù)實(shí)現(xiàn),否則,提交編譯錯(cuò)誤,要提交完整的程序。?
輸入
輸入兩個(gè)正整數(shù)n, k,k<=n<=12。
輸出
輸出一個(gè)整數(shù),即n個(gè)人中選擇k個(gè)人的不同組合方案數(shù)。

樣例輸入

樣例輸出


????????此題難度不大,考查的依舊是函數(shù)的一些基礎(chǔ)應(yīng)用,需要用到的就是高中學(xué)到的組合數(shù)的公式,對(duì)于函數(shù)相關(guān)題目而言,難度不大。
????????思路
????????想要計(jì)算組合數(shù),那就一定需要明白如何計(jì)算階乘,并且知道組合數(shù)公式,計(jì)算難度不大。這里說一下程序每一步是如何進(jìn)行的。
?????????遇到一個(gè)fact函數(shù)時(shí),就會(huì)調(diào)用下面的函數(shù)一次,所以不用擔(dān)心計(jì)算機(jī)無法輸出你想要的值,注意你輸入的實(shí)參即可。并且注意在調(diào)用的時(shí)候,你傳遞的是括號(hào)里面的值,但是返回時(shí)是你return后面的值,這里需要注意一下。
????【解答】
????????其實(shí)函數(shù)真的沒有那么難,只不過就是之前的一大段代碼,給破開成兩小段進(jìn)行編寫,真正難的地方就是需要注意,你定義的變量,是不是你需要的。
????????如果這個(gè)題目真的不使用函數(shù)來做,你也可以一個(gè)一個(gè)計(jì)算分子分母的值,進(jìn)行運(yùn)算。函數(shù)只不過是把普通代碼轉(zhuǎn)換了,普通代碼你需要使用三次階乘計(jì)算每一項(xiàng)的值,但是使用函數(shù),只需要寫一個(gè),剩下的讓計(jì)算機(jī)調(diào)用來解決。
