天天看點

3836. 計算組合數

3836. 計算組合數

Description

從n個不同物品中選出m個的選法總數用組合數C(n, m)來表示. 已知n和m,求C(n, m)的值.

Input

輸入包含多組測試資料.

輸入的每行是兩個整數n和m(0<=m<=n<=10).

m和n都為0時表示輸入結束.

Output

輸出的每行是一個C(n, m)的值.

Sample Input

5 2

3 1

10 10

0 0

Sample Output

10

3

1

// source code of submission 967531, Zhongshan University Online Judge System
#include <iostream>
using namespace std;

int step(int n)
{
    int sum = 1;
    if ( n == 1 )
        return 1;
    else
    {
        for(int i = 2;i <= n; i++)
        {
            sum *= i;
        }
        return sum;
    }
}

int main()
{
    int n,m,result;
    while (cin >> n >> m)
    {
        if( n == 0&& m == 0)
            return 0;
        else 
        {
            result = step(n) /  (step(n-m) * step(m) );
            cout << result << endl;
        }
    }
    return 0;
}