#include "stdafx.h"
#include<iostream>
#include<algorithm>
using namespace std;
//把n划分为若干等份,满足:最大加数<=m
int cal_unit_count(int n,int m){
if(m<=0||n<=0){//防止异常输入
return 0;
}
if(m==1||n==1){
return 1;
}
else if(m>n){
return cal_unit_count(n,n);
}
else if(n==m)
{
return 1+cal_unit_count(n,n-1);
}
else if(n>m&&m>1)
{
return cal_unit_count(n,m-1)+cal_unit_count(n-m,m);
}
}
//把n划分为m份给m个人有多少种方法
int n_divide_m(int n,int m){
if(m>n||m<=0||n<=0){
return 0;
}
if(m==1)
return 1;
int result=n-1;for(int i=1;i<m;i++){
result*=(n-i-1);
}
return result/2;
}
int _tmain(int argc, _TCHAR* argv[])
{
cout<<n_divide_m(10,2)<<endl;
}