求1-10共10个数中取出3个不同的数,共有多少种组合方式,算法:使用数学中的组合公式,其中m=10,n=3 用C语言
int Combination(int n, int m)
{
const int M = 10007;
int ans = 1;
for(int i=n; i>=(n-m+1); --i)
ans *= i;
while(m)
ans /= m--;
return ans % M;
}
调用
int n = Combination(10, 3);
printf("%d", n);
楼上的可以666666
有一种很简单的方法,你如果学过概率论,写一个通项公式就很简单解决问题了。
long func(int m,int n){
int i;
log r=1;
for(i=0;i<n;i++)
{
r*=m-i;
}
return r;
}