Annettuna on kolikkoa ja summa . Laske, monellako tavalla summa voidaan muodostaa kolikoista niin, että kolikoiden määrä on pienin mahdollinen.
Voit olettaa, että ja . Yksi kolikoista on aina arvoltaan . Algoritmisi tulee toimia tehokkaasti kaikissa tapauksissa.
Toteuta tiedostoon minways.py
funktio count
, joka palauttaa tehtävän vastauksen.
def count(x, coins): # TODO if __name__ == "__main__": print(count(5, [1])) # 1 print(count(5, [1, 2, 3, 4])) # 4 print(count(13, [1, 2, 5])) # 12 print(count(42, [1, 5, 6, 17])) # 30
Selitys: Kun ja kolikot ovat , mahdolliset tavat ovat , , ja . Tapojen määrä on .