POJ 2249 Binomial Showdown 求组合数C(n,k)
2011-02-03 18:53
543 查看
http://poj.org/problem?id=2249
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
Binomial Showdown
Time Limit: 1000MS | Memory Limit: 65536K |
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
/* Author : yan * Question : POJ 2249 Binomial Showdown * Date && Time : Thursday, February 03 2011 06:05 PM * Compiler : gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3 */ #include<stdio.h> double comb(int n,int k) { double ans = 1; int i; for(i=1;i<=k;i++) { ans*=(double)(n-i+1)/(double)i; } return ans; } int main() { freopen("input","r",stdin); int n,m; while(scanf("%d %d",&n,&m) && n) { m=m<(n-m)?m:(n-m); printf("%.0f/n",comb(n,m)); } return 0; }[/code]
相关文章推荐
- poj 2249 Binomial Showdown[C(n, m)组合数求解]
- POJ 2249 Binomial Showdown (连乘整商求组合数)
- POJ - 2249 - Binomial Showdown - (组合数)
- POJ 2249 Binomial Showdown(组合数)
- POJ 2249 Binomial Showdown 求组合数C(n,k)
- [ACM] poj 2249 Binomial Showdown (排列组合公式优化)
- (组合数学3.1.2.1)POJ 2249 Binomial Showdown(排列组合公式的实现)
- POJ 2249-Binomial Showdown(排列组合计数)
- [ACM] poj 2249 Binomial Showdown (排列组合公式优化)
- [ACM] poj 2249 Binomial Showdown (排列组合公式优化)
- POJ 2249 Binomial Showdown(排列组合)
- 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(排列组合公式的实现)
- ZOJ 1938 Binomial &&poj 2249 (Binomial Showdown )(睡前一水)
- POJ2249 Binomial Showdown
- POJ 2249 Binomial Showdown 笔记