码迷,mamicode.com
首页 > 其他好文 > 详细

N - Binomial Showdown (组合数学)

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

标签:组合数学   min   解题思路   lan   result   pen   name   c代码   esc   

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 (组合数学)

标签:组合数学   min   解题思路   lan   result   pen   name   c代码   esc   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!