Rešitev: Naloga: Izplacilo denarja (Mathematica)

Iz MaFiRaWiki

Opomba

Algoritem je požrešen (obstaja boljša rešitev)!
Algoritem je slab v primeru, ko je tabela EUR enaka {1,2,5,10,20,50,100,200,500}.

Algoritem

In[1]:= EUR = {500, 200, 100, 50, 20, 10, 5, 2, 1}
Out[1]= {500, 200, 100, 50, 20, 10, 5, 2, 1}
In[2]:= F[n_Integer, l_List] := Prepend[F[Mod[n, Part[l, 1]], Rest[l]], Quotient[n, Part[l,1]]]
        F[0, l_List] := {}
        IzplacajDenar[n_Integer, l_List] := 
        Join[F[n, l], Table[0, {i, 1, Length[l] - Length[F[n, l]]}]]
In[5]:= IzplacajDenar[1010, EUR]
Out[5]= {2, 0, 0, 0, 0, 1, 0, 0, 0}
Osebna orodja