RosettaCodeData/Task/Evaluate-binomial-coefficients/C++/evaluate-binomial-coefficients-1.cpp

22 lines
543 B
C++
Raw Permalink Normal View History

2013-04-10 16:57:12 -07:00
double Factorial(double nValue)
{
double result = nValue;
double result_next;
double pc = nValue;
do
{
result_next = result*(pc-1);
result = result_next;
pc--;
}while(pc>2);
nValue = result;
return nValue;
}
2018-06-22 20:57:24 +00:00
double binomialCoefficient(double n, double k)
2013-04-10 16:57:12 -07:00
{
2018-06-22 20:57:24 +00:00
if (abs(n - k) < 1e-7 || k < 1e-7) return 1.0;
if( abs(k-1.0) < 1e-7 || abs(k - (n-1)) < 1e-7)return n;
return Factorial(n) /(Factorial(k)*Factorial((n - k)));
2013-04-10 16:57:12 -07:00
}