首页 > 其他 > 详细

N - Binomial Showdown (组合数学)

时间:2018-07-16 10:22:11      阅读:180      评论:0      收藏:0      [点我收藏+]

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 2 31
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
解题思路:简单求组合数,水过!
AC代码:
 1 #include<iostream>
 2 using namespace std;
 3 int main(){
 4     int n,k;long long ans;
 5     while(cin>>n>>k&&(n+k)){
 6         if(n-k<k)k=n-k;
 7         ans=1;
 8         for(int i=1;i<=k;++i)ans=ans*(n-i+1)/i;
 9         cout<<ans<<endl;
10     }
11     return 0;
12 }

 

N - Binomial Showdown (组合数学)

原文:https://www.cnblogs.com/acgoto/p/9315865.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!