我在閱讀可能有效的方法來計算 ncr
當我遇到此帖時。計算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;
}
這將會是什麼複雜性?我試着用一個例子來做,答案是正確的,但是這些條件是什麼?
謝謝。明白了。:) – 2014-10-03 13:40:22