POJ2249Binomial Showdown

来源:互联网 发布:丝绸之路大数据公司 编辑:程序博客网 时间:2024/04/27 19:51
Time Limit: 1000MS
Memory Limit: 65536KTotal Submissions: 17617
Accepted: 5363

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

4 210 549 60 0

Sample Output

625213983816

Source

Ulm Local 1997
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
double ans;
int i,k,n;
int main()
{
for(;scanf("%d%d",&n,&k)==2;)
{
if((n+k)==0)
break;
ans=1;
k=(k>n/2)?n-k:k;
for(i=1;i<=k;)
{
ans=ans*n/i;
--n;
++i;
}
printf("%.lf\n",ans);
}
return 0;

}

0 0
原创粉丝点击