排列组合A(n,m)与C(n,m)

公式



代码模拟公式计算
例:C(7,3)则循环三次每次分别为
5 / 1 ,
5 * 6 / 1 * 2 ,
5 * 6 * 7 / 1 * 2 * 3

C(n,m)

#define LL long long
LL C(LL n,LL m) // n为下标 m为上标
{
    LL k,sum = 1;
    for(k=1;k<=m;k++){
        sum = (sum*(n-m+k))/k;
    }
    return sum;
}

A(n,m)

#define LL long long
LL A(LL n,LL m)
{
    LL k,sum = 1;
    for(k=1;k<=m;k++){
        sum = (sum*(n-m+k));
    }
    return sum;
}

你可能感兴趣的:(排列组合A(n,m)与C(n,m))