RosettaCodeData/Task/Evaluate-binomial-coefficients/D/evaluate-binomial-coefficie...

23 lines
376 B
D

T BinomialCoeff(T)(in T n, in T k)
{
T nn = n, kk = k, c = cast(T)1;
if (kk > nn - kk) kk = nn - kk;
for (T i = cast(T)0; i < kk; i++)
{
c = c * (nn - i);
c = c / (i + cast(T)1);
}
return c;
}
void main()
{
import std.stdio, std.bigint;
BinomialCoeff(10UL, 3UL).writeln;
BinomialCoeff(100.BigInt, 50.BigInt).writeln;
}