comb.cpp

来自「几个实用算法:质数 组合数 公约数 字符串长度」· C++ 代码 · 共 56 行

CPP
56
字号
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;


/*
  Name: 
  Copyright: Seu.Edu.Cn
  Author: ufouser
  Id: 09002611
  Date: 
  Description:    			
  
*/

typedef unsigned long ULong;

ULong Comb(ULong n, ULong m)
{
	if (n < m)
   	{
   		return 0;
   	}	
 
  	if (m == 0)
   	{
   		return 1;
   	}
   	
   	double rlt = 1;
	if (m > n / 2)
	{
		m = n - m;
	}
    for (ULong i = 1; i <= m; ++i)
    {
    	rlt = (rlt / i) * (n - i + 1);
    }
    return ULong(rlt);
}    	
    	
   	

int main()
{
	long n, m;
	while (cin >> n >> m)
	{
		cout << Comb(n,m) << endl;
	}	
    
    system("PAUSE");	
    return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?