如何求组合数?
下面是我编写的一段求解两个数的组合数的代码,但是运行结果存在错误,求解范围受到限制,例如求36!得到的结果却为零,求解释一下是什么原因:#include<iostream>
using namespace std;
int zuheshu(int n)
{
int i,sum=1;
for(i=n;i>0;i--)
sum*=i;
return sum;
}
int main()
{
int m,n,A,B,C,D;
cout<<"请输入m=";
cin>>m;
cout<<"请输入n=";
cin>>n;
A=zuheshu(m);
cout<<A<<endl;
B=zuheshu(n);
cout<<B<<endl;
C=zuheshu(m-n);
cout<<C<<endl;
D=A/B/C;
cout<<"从个数中抽取个数的组合数D="<<D<<endl;
return 0;
}
正确结果:
错误结果: