简单计算求组合数 Binomial Showdown
2013-01-23 19:16
295 查看
#include <stdio.h> int main() { double n,k; while(scanf("%lf%lf",&n,&k)==2) { if(n==0&&k==0) break; double ans=1; if(2*k>n) k=n-k;//注意优化 while(k>=1)//分子是n*n-1*...*n-k+1 共k项,分母是k*k-1*...*1共k项,所以复杂度取决于k的大小 { ans*=n/k; n--,k--; } printf("%.0lf\n",ans); } return 0; }
相关文章推荐
- POJ 2249 Binomial Showdown(组合数)
- POJ 2249 Binomial Showdown (连乘整商求组合数)
- poj 2249 Binomial Showdown[C(n, m)组合数求解]
- POJ 2249 Binomial Showdown 求组合数C(n,k)
- POJ 2249 Binomial Showdown 求组合数C(n,k)
- POJ - 2249 - Binomial Showdown - (组合数)
- C++简单计算
- Binomial Showdown
- Ural 1114. Boxes 解题报告(组合数计算)
- 第7周项目2-简单计算问题体验
- 二进制中补码计算简单详实的讲解
- 计算字符串MD5值简单实现
- Round Numbers((组合数 + 简单组合数学)||(数位dp))
- 4-8 简单阶乘计算 (10分)
- [C]Week 1 简单的计算程序
- hdu 1466 计算直线的交点数 (简单的动态规划)
- 组合数快速计算-尽量小的数组
- 简单介绍几个计算几何的资源
- c++第一次实验:简单计算问题体验
- csu 1246 十二指肠钩虫 简单计算