Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
24
Task/Count-the-coins/Elixir/count-the-coins.elixir
Normal file
24
Task/Count-the-coins/Elixir/count-the-coins.elixir
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
defmodule Coins do
|
||||
def find(coins,lim) do
|
||||
vals = Map.new(0..lim,&{&1,0}) |> Map.put(0,1)
|
||||
count(coins,lim,vals)
|
||||
|> Map.values
|
||||
|> Enum.max
|
||||
|> IO.inspect
|
||||
end
|
||||
|
||||
defp count([],_,vals), do: vals
|
||||
defp count([coin|coins],lim,vals) do
|
||||
count(coins,lim,ways(coin,coin,lim,vals))
|
||||
end
|
||||
|
||||
defp ways(num,_coin,lim,vals) when num > lim, do: vals
|
||||
defp ways(num, coin,lim,vals) do
|
||||
ways(num+1,coin,lim,ad(coin,num,vals))
|
||||
end
|
||||
|
||||
defp ad(a,b,c), do: Map.put(c,b,c[b]+c[b-a])
|
||||
end
|
||||
|
||||
Coins.find([1,5,10,25],100)
|
||||
Coins.find([1,5,10,25,50,100],100_000)
|
||||
Loading…
Add table
Add a link
Reference in a new issue