----------------解决方案--------------------------------------------------------
如果只是计算的话,那就是C(18,4)-C(6,4)-2*C(5,4)-2*C(4,4);
只要有求组合数的函数就可以了,想必大家都应该知道吧.
C(n,m)=n!/((n-m)!m!)
----------------解决方案--------------------------------------------------------
数太大的时候会溢出的,所以数据类型要选好!还要想到好的算法!呵呵!我就犯了这个错误。
----------------解决方案--------------------------------------------------------
嗯,要想好算法就用数学知识,偶数学very poor,所以不清楚。
----------------解决方案--------------------------------------------------------
呵呵!有同感啊!
----------------解决方案--------------------------------------------------------
http://bbs.bc-cn.net/viewthread.php?tid=100958这个算是一种算法。
----------------解决方案--------------------------------------------------------
呵呵!这是计算组合的一个函数!
#include <stdio.h>
int main(void)
{
long m, k;
scanf("%ld%ld", &m, &k);
int zhang(long m,long k);
printf("%d", zhang(m,k));
return 0;
}
int zhang(long m,long k)
{
int i, j, sum = 1;
k = k > (m/2)?m - k:k;
for(i = m, j = 1;i > m - k;i --,j ++)
{
sum *= (float)i/j;
}
return sum;
}
----------------解决方案--------------------------------------------------------
所以大家想要设计出高水准的程序,就要在数学上下功夫哦,嘻嘻
----------------解决方案--------------------------------------------------------