Sinulla on kolikkoa ja jokaisella kolikolla on jokin kokonaislukuarvo. Tehtäväsi on laskea, montako eri summaa voit muodostaa käyttämällä kolikoita.
Esimerkiksi kun kolikot ovat , mahdolliset summat ovat , , , , , ja . Tässä tapauksessa on siis mahdollista summaa. Huomaa, että summassa tulee olla vähintään yksi kolikko eli tyhjä ratkaisu ei kelpaa.
Voit olettaa, että ja jokaisen kolikon arvo on välillä
Python
Toteuta tiedostoon coins.py
funktio count
, joka antaa mahdollisten summien lukumäärän.
def count(t): # TODO if __name__ == "__main__": print(count([3,4,5])) # 7 print(count([1,1,2])) # 4 print(count([2,2,2,3,3,3])) # 13 print(count([42,5,5,100,1,3,3,7])) # 91
Java
Toteuta tiedostoon Coins.java
metodi count
, joka antaa mahdollisten summien lukumäärän.
public class Coins { public int count(int[] t) { // TODO } public static void main(String[] args) { Coins c = new Coins(); System.out.println(c.count(new int[]{3,4,5})); // 7 System.out.println(c.count(new int[]{1,1,2})); // 4 System.out.println(c.count(new int[]{2,2,2,3,3,3})); // 13 System.out.println(c.count(new int[]{42,5,5,100,1,3,3,7})); // 91 } }