Tehtäväsi on laskea, monellako tavalla n \times m suorakulmio voidaan peittää käyttämällä korkeintaan k suorakulmiota. Kaikissa suorakulmioissa sivujen pituudet ovat kokonaislukuja.
Esimerkiksi 2 \times 3 suorakulmio voidaan peittää yhteensä 13 tavalla, kun suorakulmioita saa käyttää korkeintaan 3:
Python
Toteuta tiedostoon cover.py funktio count, joka antaa peittotapojen määrän.
def count(n, m, k):
# TODO
if __name__ == "__main__":
print(count(2,2,4)) # 8
print(count(2,3,3)) # 13
print(count(4,4,1)) # 1
print(count(4,3,10)) # 3146
print(count(4,4,16)) # 70878
Java
Toteuta tiedostoon Cover.java metodi count, joka antaa peittotapojen määrän.
public class Cover {
public int count(int n, int m, int k) {
// TODO
}
public static void main(String[] args) {
Cover c = new Cover();
System.out.println(c.count(2,2,4)); // 8
System.out.println(c.count(2,3,3)); // 13
System.out.println(c.count(4,4,1)); // 1
System.out.println(c.count(4,3,10)); // 3146
System.out.println(c.count(4,4,16)); // 70878
}
}
