RosettaCodeData/Task/Evaluate-binomial-coefficients/Erlang/evaluate-binomial-coefficients.erl

9 lines
239 B
Erlang
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
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).