排列组合公式和写法
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; }
相关文章推荐
- Qt学习之QSplitter分割窗口
- 分布式服务框架 Zookeeper -- 管理分布式环境中的数据
- 【转】数据仓库拉链算法在ORACLE中的实现
- iOS如何获取网络图片(三)有沙盒的
- mysql正则匹配解决查询一个字段是否在另一个字段中
- Android开发历程_2(实现简单的乘法计算)
- 复利计算器3.0总结
- ORACLE循环
- Hadoop学习笔记:MapReduce框架详解
- POJ 3468 A Simple Problem with Integers(线段树)
- linux有效修改max open files/ulimit -n
- 命令行安装mysql5.7失败(提示信息:MySql服务无法启动.服务没有报告任何错误)
- dwz 弹出框分页实现方法
- 外观模式
- 基于执行视图解析ELF
- 南阳 990 蚂蚁感冒 第五届蓝桥杯 解题报告
- CUBRID学习笔记 36 在net中添加多行记录
- CSS设置属性
- C# 使用网易邮箱发送邮件
- redis php 实例一