8 lines
239 B
Erlang
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).
|