c语言求组合数函数 c语言数组合并函数

大一C语言(求阶乘用函数实现)求组合数

有两个问题,一个是fact()函数里的p应该定义成double类型,第二个是printf()不应该用%d输出double类型的值,应该用%.0f或者%.0lf

创新互联公司是一家专业提供德兴企业网站建设,专注与网站制作、成都网站设计、HTML5建站、小程序制作等业务。10年已为德兴众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。

顺便说一句,这个问题只要定义fact()一个函数就够了,输出的时候用

printf("result = %.0f\n",fact(n)/(fact(m)*fact(n-m)));

另外两个函数删掉就可以了。

C语言【求组合数】

这个题目的数学公式可以简化,n比m小

判断n和m-n谁大,业绩是n是否大于m/2

这样可以计算,如果nm/2

m*(m-1)*...*(n+1)除以(m-n)*(m-n-1)*....*2

道理你该明白

C语言求组合数

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语言求组合数函数 c语言数组合并函数
网址分享:http://myzitong.com/article/hiidie.html