RosettaCodeData/Task/Evaluate-binomial-coefficients/Erlang/evaluate-binomial-coefficients.erl
2018-06-22 20:57:24 +00:00

8 lines
239 B
Erlang

choose(N, 0) -> 1;
choose(N, K) when is_integer(N), is_integer(K), (N >= 0), (K >= 0), (N >= K) ->
choose(N, K, 1, 1).
choose(N, K, K, Acc) ->
(Acc * (N-K+1)) div K;
choose(N, K, I, Acc) ->
choose(N, K, I+1, (Acc * (N-I+1)) div I).