您的位置:首页 > 其它

排列组合公式和写法

2016-03-17 16:50 441 查看


C(n, m) 和[b]C(n, n-m) 的结果是一样的 , 还有C(n, 0)是1 , 这些是基本知识。[/b]






C(n, m)的分子部分:n*(n-1)*...*(m+1). 一共是n-m项相乘, 所以m越大 , 分子部分因子个数越少,

代码实现时溢出的可能性也会减小。

代码:

#include<stdio.h>
long long C(int n, int m) {
if(m < n-m) m = n-m;
long long ans = 1;
for(int i = n; i >= m+1; i--) ans *= i;
for(int i = 1; i <= n-m; i++) ans /= i;
return ans;
}
int main() {
long long ans = C(26, 5);
printf("%I64d\n", ans);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: