计算n 和m 的组合数,并取余数,下面的代码错在哪里呢?

#include <iostream>
#include <math.h>
using namespace std;

long long C(int n,int m){
long long s=1,q=1,i;
if(n == 1||m==0||n==0) return 1;
for(i=n;i>=n-m+1;i--){
//s=fmod((s*i),(1e9+7));
s=(s*i)%(1000000000+7);

}
//cout<<s<<endl;
for(i=m;i>=2;i--){
//q=fmod((q*i),(1e9+7));
q=(q*i)%(1000000000+7);
}
//cout<<q<<endl<<s/q;
//return fmod((s/q),(1e9+7));
return (s/q)%(1000000000+7);
}
int main()
{
int sum,n,m,i;
int a;
cin>>sum;
for(i = 0;i < sum;i++){
cin>>n>>m;
cout<<C(n,m)%(1000000000+7)<<endl;
}
return 0;
}

错在主函数里int a;这个a根本没有使用,去掉这行;别的没问题,可以运行
温馨提示:答案为网友推荐,仅供参考
相似回答