方法一
如果int不够用就换成long long
int C(int n, int m) //求组合数
{
if (m < n - m) m = n - m;
int ans = 1;
for (int i = m + 1; i <= n; i++) ans *= i;
for (int i = 1; i <= n - m; i++) ans /= i;
return ans;
}
方法二
利用组合数的递推公式
int C[10][10];
void Init() {
for (int i = 0; i < 10; i++) {
for (int j = 0; j <= i; j++) {
if (!j) C[i][j] = 1;
else C[i][j] = C[i - 1][j - 1] + C[i - 1][j];
}
}
} //此时C[m][n]就是m,n的组合数