【发布时间】:2014-10-03 06:39:24
【问题描述】:
我正在阅读可能的有效计算方法
ncr 当我看到这篇文章时。
Which is better way to calculate nCr
这里给出的第二个答案,我无法理解。代码是:
long long combi(int n,int k)
{
long long ans=1;
k=k>n-k?n-k:k;
int j=1;
for(;j<=k;j++,n--)
{
if(n%j==0)
{
ans*=n/j;
}else
if(ans%j==0)
{
ans=ans/j*n;
}else
{
ans=(ans*n)/j;
}
}
return ans;
}
这会有什么复杂性?我试着用一个例子来做,答案是正确的,但这些条件是什么?
【问题讨论】: