zoukankan      html  css  js  c++  java
  • 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 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;//开long long,避免数据溢出
     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 }
  • 相关阅读:
    JQuery
    C#基础知识
    CSS
    学习.NET
    Grunt常见问题
    一个小型的类库
    SQL字符串处理!
    安装Java8以后,Eclipse运行异常解决方案
    谈薪四式让你谈好薪
    使用js实现input输入框的增加
  • 原文地址:https://www.cnblogs.com/acgoto/p/9315865.html
Copyright © 2011-2022 走看看