Binomial Showdown(P2249)
2012-06-07 23:56
190 查看
注意其计算的时候要保证边计算边减少其计算的数字不能超过long long的范围。
Binomial Showdown
Description
In how many ways can you choose k elements out of n elements, not taking order into account?
Write a program to compute this number.
Input
The input will contain one or more test cases.
Each test case consists of one line containing two integers n (n>=1) and k (0<=k<=n).
Input is terminated by two zeroes for n and k.
Output
For each test case, print one line containing the required number. This number will always fit into an integer, i.e. it will be less than 231.
Warning: Don't underestimate the problem. The result will fit into an integer - but if all intermediate results arising during the computation will also fit into an integer depends on your algorithm. The test cases will go to the limit.
Sample Input
Sample Output
Source
Ulm Local 1997
#include<iostream> #include<cstdio> #include<cstring> #include<ctype.h> #include<vector> #include<algorithm> #include<queue> #include<set> #include<stack> using namespace std; long long gcd(long long big,long long small) { if (big%small==0) return small; return gcd(small,big%small); } int main() { long long i; long long j; long long k; long long a; double x=23; //printf("%.0f\n",x); long long b; while (cin>>a>>b) { if (!(a+b)) break; b=min(b,a-b); k=1; j=1; for (i=1;i<=b;i++) { k*=(a-i+1); if (k%i==0) { k/=i; } else { j*=i; } long long temp=gcd(k,j); k/=temp; j/=temp; } cout<<k<<endl; } return 0; }
Binomial Showdown
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 15624 | Accepted: 4778 |
In how many ways can you choose k elements out of n elements, not taking order into account?
Write a program to compute this number.
Input
The input will contain one or more test cases.
Each test case consists of one line containing two integers n (n>=1) and k (0<=k<=n).
Input is terminated by two zeroes for n and k.
Output
For each test case, print one line containing the required number. This number will always fit into an integer, i.e. it will be less than 231.
Warning: Don't underestimate the problem. The result will fit into an integer - but if all intermediate results arising during the computation will also fit into an integer depends on your algorithm. The test cases will go to the limit.
Sample Input
4 2 10 5 49 6 0 0
Sample Output
6 252 13983816
Source
Ulm Local 1997
相关文章推荐
- poj 2249 Binomial Showdown
- (组合数学3.1.2.1)POJ 2249 Binomial Showdown(排列组合公式的实现)
- POJ 2249 Binomial Showdown(我的水题之路——求n个数里取m个数的值)
- (组合数学3.1.2.1)POJ 2249 Binomial Showdown(排列组合公式的实现)
- HOJ 1446 Binomial Showdown
- UVa 530 - Binomial Showdown
- poj 2249 Binomial Showdown[C(n, m)组合数求解]
- UVa530 - Binomial Showdown
- 简单计算求组合数 Binomial Showdown
- zoj 1938 Binomial Showdown 组合数裸基础
- POJ 题目2249 Binomial Showdown(数学)
- poj2249 Binomial Showdown(二项式系数)
- POJ 2249 Binomial Showdown 求组合数C(n,k)
- POJ 2249 Binomial Showdown(组合数)
- POJ 2249 Binomial Showdown(排列组合)
- POJ 2249 Binomial Showdown 求组合数C(n,k)
- ZOJ 1938 Binomial Showdown
- ZOJ 1938 Binomial &&poj 2249 (Binomial Showdown )(睡前一水)
- POJ 2249-Binomial Showdown(排列组合计数)
- (组合)Binomial Showdown