有兩個問題,一個是fact()函數(shù)里的p應(yīng)該定義成double類型,第二個是printf()不應(yīng)該用%d輸出double類型的值,應(yīng)該用%.0f或者%.0lf
創(chuàng)新互聯(lián)公司是一家專業(yè)提供德興企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、HTML5建站、小程序制作等業(yè)務(wù)。10年已為德興眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
順便說一句,這個問題只要定義fact()一個函數(shù)就夠了,輸出的時候用
printf("result = %.0f\n",fact(n)/(fact(m)*fact(n-m)));
另外兩個函數(shù)刪掉就可以了。
這個題目的數(shù)學(xué)公式可以簡化,n比m小
判斷n和m-n誰大,業(yè)績是n是否大于m/2
這樣可以計(jì)算,如果nm/2
m*(m-1)*...*(n+1)除以(m-n)*(m-n-1)*....*2
道理你該明白
double?fact(long?num)
{
for?(long?i?=?1;?num??0;?num--)
{
i?*=?num;
}????
}
int?main()
{
long?m;
long?n;
long?C;
scanf("%ld?%ld",?m,?n);
C?=?fact(n)?/?((fact(m))?*?fact(n-m));
printf("%ld",C);
return?0;
}
新聞名稱:c語言求組合數(shù)函數(shù) c語言數(shù)組合并函數(shù)
標(biāo)題路徑:http://m.rwnh.cn/article4/hiidie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、虛擬主機(jī)、品牌網(wǎng)站設(shè)計(jì)、品牌網(wǎng)站制作、定制開發(fā)、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)