编写一个函数或程序,输出一个N维超立方体的每种类型的元素(顶点,边,面等)的数量。
例如,三维立方体具有1个像元(即1个3维立方体),6个面(即6个2维立方体),12个边(即12个2维立方体)和8个顶点(即8个0维)立方体)。
有关Hypercube元素的更多详细信息,请参见此处
您还可以查看以下OEIS序列。
输入项
您的代码将采用大于或等于0的整数作为输入(通过STDIN或函数参数或类似的东西),它是超多维数据集的维。
从理论上讲,您的代码必须对大于等于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]
计分
这是代码高尔夫球,因此最短的答案以字节为单位。