Sinulla on n 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 [3,4,5], mahdolliset summat ovat 3, 4, 5, 7, 8, 9 ja 12. Tässä tapauksessa on siis 7 mahdollista summaa. Huomaa, että summassa tulee olla vähintään yksi kolikko eli tyhjä ratkaisu ei kelpaa.
Voit olettaa, että 1 \le n \le 100 ja jokaisen kolikon arvo on välillä 1 \dots 100
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 } }