题目描述:
表示从m个元素中取n个的组合数,又知
即:C(m,n)=C(m-1,n)+C(m-1,n-1);
C(m,m)=1; (边界条件 m=n)
C(m,1)=m; (边界条件 n=1)
请递归求出组合问题的解
输入格式:
只有一行,为两个正整数,m,n.(0<m,n<=20)
输出格式:
只有一行,为C(m,n)的值
样例输入:
19 9
样例输出:
92378
时间限制: 1000ms
空间限制: 128MB
C(n,m)=n!/ [(n-m)!* m!]
#include<bits/stdc++.h>
using namespace std;
int main(){
long long a,b,s=1,s1=1,s2=1;
cin>>a>>b;
long long c=a-b;
for(int i=1;i<=a;i++){
s*=i;
}
for(int i=1;i<=b;i++){
s1*=i;
}
for(int i=1;i<=c;i++){
s2*=i;
}
cout<<s/(s1*s2);
return 0;
}