有些初学者可能不知道比较大的组合数怎么求,因为如果用组合数的定义公式
来求很快就溢出了。
为了求出更大的组合数可以利用组合数的递推公式C(n,m)=C(n-1,m-1)+C(n-1,m)
下面给出代码:
#include<iostream>
using namespace std;
long long C[100][100];
int main()
{
for(int i=1;i<50;++i)
{
C[i][i]=1;
C[i][0]=1;
}
for(int i=1;i<50;++i)
{
for(int j=i+1;j<50;++j)
{
C[j][i]=C[j-1][i-1]+C[j-1][i];
}
}
int m,n;
while(cin>>m>>n)///C(m,n)
{
cout<<C[m][n]<<endl;
}
return 0;
}
C(n,m)=C(n-1,m-1)+C(n-1,m)