原来的例子,当m=1,n=20时会溢出,计算错误。修改如下:
#include <iostream>
using namespace std;
long long f(int n)
{
int i;
long long m=1;
for(i=1;i<=n;i++)
m*=i;
return m;
}
int main()
{
int m,n;
cin>>m>>n;
cout<<f(n)/(f(m)*f(n-m));
return 0;
}
原来的例子,当m=1,n=20时会溢出,计算错误。修改如下:
#include <iostream>
using namespace std;
long long f(int n)
{
int i;
long long m=1;
for(i=1;i<=n;i++)
m*=i;
return m;
}
int main()
{
int m,n;
cin>>m>>n;
cout<<f(n)/(f(m)*f(n-m));
return 0;
}