Annettuna on n kolikkoa ja summa x. Laske, monellako eri tavalla summa voidaan muodostaa kolikoista.
Tässä tehtävässä kaksi tapaa ovat erilaiset, jos järjestetyt listat ovat erilaisia. Esimerkiksi [1,4] ja [2,3] ovat eri tavat, mutta [1,4] ja [4,1] eivät ole.
Voit olettaa, että 1 \le n \le 10 ja 1 \le x \le 100. Algoritmisi tulee toimia tehokkaasti kaikissa tapauksissa.
Toteuta tiedostoon diffcoin.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 print(count(13, [1, 2, 5])) # 14 print(count(42, [1, 5, 6, 17])) # 58 print(count(99, [2, 4, 6])) # 0