[POJ2249]计算组合数
来源:互联网 发布:don t starve mac 编辑:程序博客网 时间:2024/04/29 04:57
原题
题目描述
给定正整数n, k,计算C(n, k)。答案保证在2^31以内。
输入
多组数据,每组数据仅一行,即2个整数n和k (n>=1) and k (0<=k<=n).
以2个0结束输入
输出
对每个数据,输出对应的答案
样例输入
4 2
10 5
49 6
0 0
样例输出
6
252
13983816
分析
首先,要知道什么是组合数,点击这里。
了解了什么是几何数了过后,我们就有了一点思路:
举一个实例:
以上公式也可以看成
所以,我们得出了计算C的函数,供大家参考:
LL C(int n,int k){ if(2*k>n) k=n-k; LL s=1; for(LL i=1,j=n;i<=k;i++,j--) s=s*j/i; return s;}
但是我觉得写一个函数很蛋疼,就写了个main函数。
源程序
#include<iostream>#include<cstdio>using namespace std;#define LL long longint main(){ LL n,k; while(scanf("%lld %lld",&n,&k)==2&&(n||k)){ if(2*k>n) k=n-k; LL s=1; for(LL i=1,j=n;i<=k;i++,j--) s=s*j/i; printf("%lld\n",s); }}
0 0
- [POJ2249]计算组合数
- poj2249 Binomial Showdown 求组合数
- poj2249
- poj2249
- poj2249
- 组合数计算技巧
- 计算组合数
- 3836. 计算组合数
- 3836. 计算组合数
- 1586 计算组合数
- 计算组合数
- 组合数计算总结
- 组合数的计算
- 计算组合数
- 计算组合数
- 组合数的计算
- 组合数的计算
- 计算组合数
- View事件分发机制
- ios获取xib布局后的视图frame
- ssm框架整合配置
- Ubuntu15.04中测试安装的opencv2.4.9 时遇到usr/bin/ld: cannot find -lcufft解决方法。
- 一种Java版的规范的`equals()`
- [POJ2249]计算组合数
- Gradle实战:Android多渠道打包方案汇总
- mvc和mvvm档板数据
- QT中子目录调用另一个子目录
- [BZOJ2648]SJY摆棋子(kd-tree)
- Java基础-11总结Eclipse使用,API,Object类
- 硬盘模式兼容性问题不难解决,我们将新电脑的主板设置调整为IDE模式,进入操作系统,修改注册表让操作系统和AHCI匹配:
- BootstrapValidator验证表单注意事项!
- 第一次安装caffe的步骤