poj 2249 Binomial Showdown
2011-11-22 08:46
281 查看
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
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 14828 | Accepted: 4549 |
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
#include<iostream> using namespace std; __int64 fun(int a , int b , int c) { __int64 kk = 1 ; int wk = a , wk2 = 1 ; for(wk = c ; wk >= b + 1 ; wk-- ) { kk *= wk ; if( kk % a == 0 && a > 0) kk /= a-- ; } while( a && a >= 1 ) { wk2 *= a-- ; } return kk / wk2; } int main() { int N = 0 , M = 0 ; while( scanf( "%d%d" , &N , &M) , N + M !=0) { int min = 0, max =0 ; if( N - M > M ) { min = M ; max = N - M ; } else { max = M; min = N - M ; } cout<<fun( min , max , N)<<"\n" ; } return 0; }
相关文章推荐
- POJ2249 Binomial Showdown
- POJ 2249 Binomial Showdown(组合数)
- poj 2249 Binomial Showdown[C(n, m)组合数求解]
- poj 2249 Binomial Showdown(组合数 公式优化)
- poj 2249 Binomial Showdown
- poj 2249 Binomial Showdown
- POJ - 2249 - Binomial Showdown - (组合数)
- POJ 2249-Binomial Showdown(排列组合计数)
- POJ 2249 Binomial Showdown 求组合数C(n,k)
- POJ 2249 Binomial Showdown 笔记
- POJ 2249 Binomial Showdown 求组合数C(n,k)
- poj2249 Binomial Showdown(二项式系数)
- Poj 2249 Binomial Showdown
- poj2249 Binomial Showdown 求组合数
- poj 2249 Binomial Showdown
- POJ 2249-Binomial Showdown(排列组合计数)
- (组合数学3.1.2.1)POJ 2249 Binomial Showdown(排列组合公式的实现)
- poj 2249 Binomial Showdown
- POj 2249 Binomial Showdown 【组合数学】
- POJ 2249 Binomial Showdown (连乘整商求组合数)