Tehtäväsi on selvittää, montako erilaista n-alkiosta minimikekoa voidaan muodostaa luvuista 1,2,\dots,n.
Esimerkiksi kun n=4, vaihtoehdot ovat taulukkoesityksenä [1,2,3,4], [1,2,4,3] ja [1,3,2,4] eli vastaus on 3.
Voit olettaa, että n on korkeintaan 25 ja vastaus on korkeintaan 10^{18}.
Python
Toteuta tiedostoon allheaps.py
funktio count
, joka antaa kekojen määrän.
def count(n): # TODO if __name__ == "__main__": print(count(2)) # 1 print(count(3)) # 2 print(count(4)) # 3 print(count(5)) # 8 print(count(10)) # 3360
Java
Toteuta tiedostoon AllHeaps.java
metodi count
, joka antaa kekojen määrän.
public class AllHeaps { public long count(int n) { // TODO } public static void main(String[] args) { AllHeaps a = new AllHeaps(); System.out.println(a.count(2)); // 1 System.out.println(a.count(3)); // 2 System.out.println(a.count(4)); // 3 System.out.println(a.count(5)); // 8 System.out.println(a.count(10)); // 3360 } }