Я читал возможные эффективные методы расчета 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;
}
И какая будет сложность для этого? Я попытался сделать это с примером, и ответ выходит правильно, но каковы эти условия?
Спасибо. Получил. :) –