Napisz funkcję lub program, który wypisuje liczbę każdego typu elementu (wierzchołek, krawędź, powierzchnia itp.) Hipersześcianu N-wymiarowego.
Na przykład trójwymiarowy sześcian ma 1 komórkę (tj. 1 trójwymiarowy sześcian), 6 ścian (tj. 6 2-wymiarowych kostek), 12 krawędzi (tj. 12 2-wymiarowych kostek) i 8 wierzchołków (tj. 8 0-wymiarowych kostki).
Więcej informacji na temat elementów Hypercube można znaleźć tutaj
Możesz także rzucić okiem na następującą sekwencję OEIS .
Wejście
Twój kod przyjmuje jako dane wejściowe (przez STDIN lub parametr funkcji lub podobne rzeczy) liczbę całkowitą większą lub równą 0, która jest wymiarem hipersześcianu.
Twój kod musi teoretycznie działać dla każdego wejścia> = 0, nie uwzględniając problemów z pamięcią i czasem (to znaczy, szybkość i potencjalne przepełnienia stosu nie stanowią problemu dla twojej odpowiedzi, jeśli dane wejściowe są duże). Dane wejściowe podane jako przypadki testowe nie będą wyższe niż 12.
Wynik
Wyślesz listę wszystkich elementów hipersześcianu, zaczynając od elementu „najwyższego wymiaru”. Na przykład, dla sześcianu (input = 3), wypiszesz listę [1,6,12,8]
(1 komórka, 6 ścian, 12 krawędzi, 8 wierzchołków).
Format listy na wyjściu jest względnie darmowy, pod warunkiem, że wygląda jak lista.
Możesz wyprowadzić wynik do STDOUT lub zwrócić go z funkcji.
Przypadki testowe
Input = 0
Output = [1]
Input = 1
Output = [1,2]
Input = 3
Output = [1,6,12,8]
Input = 10
Output = [1, 20, 180, 960, 3360, 8064, 13440, 15360, 11520, 5120, 1024]
Input = 12
Output = [1, 24, 264, 1760, 7920, 25344, 59136, 101376, 126720, 112640, 67584, 24576, 4096]
Punktacja
To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.