N - Binomial Showdown (組合數學)
阿新 • • 發佈:2018-07-16
rmi size iat 代碼 ble sample con The 思路
Write a program to compute this number.
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.
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.
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
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 (組合數學)