CSES - Esitystavat

Monellako tavalla kokonaisluku n voidaan esittää positiivisten kokonaislukujen summana? Kaksi tapaa ovat erilaiset, jos summat eroavat, kun luvut järjestetään pienimmästä suurimpaan. Summassa voi olla myös vain yksi luku.

Esimerkiksi luku 5 voidaan esittää seuraavilla tavoilla: 5, 1+4, 2+3, 1+1+3, 1+2+2, 1+1+1+2 ja 1+1+1+1+1.

Voit olettaa, että n on välillä 1 \dots 50. Koodisi tulee laskea vastaus itse (eli siinä ei saa olla esimerkiksi listaa, jossa on valmiit vastaukset joka testiin).

Python

Toteuta tiedostoon number.py funktio count, joka antaa esitystapojen määrän.

def count(n):
    # TODO

if __name__ == "__main__":
    print(count(4)) # 5
    print(count(5)) # 7
    print(count(8)) # 22
    print(count(42)) # 53174

Java

Toteuta tiedostoon Number.java metodi count, joka antaa esitystapojen määrän.

public class Number {
    public int count(int n) {
        // TODO
    }

    public static void main(String[] args) {
        Number n = new Number();
        System.out.println(n.count(4)); // 5
        System.out.println(n.count(5)); // 7
        System.out.println(n.count(8)); // 22
        System.out.println(n.count(42)); // 53174
    }
}