Напишіть функцію або програму, яка виводить номер кожного типу елементів (вершини, краю, обличчя тощо) N-мірного гіперкуба.
Наприклад, 3-мірний куб містить 1 комірку (тобто 1 3-мірний куб), 6 граней (тобто 6 двовимірних кубів), 12 ребер (тобто 12 двовимірних кубів) і 8 вершин (тобто 8 0-мірних кубів) кубики).
Детальніше про елементи Hypercube можна ознайомитись тут
Ви також можете переглянути наступну послідовність OEIS .
Вхідні дані
Ваш код буде приймати як вхід (через STDIN або функціональний параметр або подібні речі) ціле число, що більше або дорівнює 0, що є розміром гіперкуба.
Ваш код теоретично повинен працювати на будь-який вхід> = 0, ігноруючи питання пам'яті та часу (тобто швидкість та потенційні переповнення стека не є проблемою для вашої відповіді, якщо вхід великий). Введені в якості тестових випадків не перевищуватимуть 12.
Вихідні дані
Ви виймете список усіх елементів гіперкуба, починаючи з елемента "найвищого виміру". Наприклад, для куба (вхід = 3) ви виведете список [1,6,12,8]
(1 комірка, 6 граней, 12 ребер, 8 вершин).
Формат списку у висновку відносно вільний, якщо він виглядає як список.
Ви можете вивести результат в STDOUT або повернути його з функції.
Тестові справи
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]
Оцінка балів
Це код-гольф , тому найкоротша відповідь у байтах виграє.