编写一个程序或函数,给定一个整数n,该程序或函数构造一个长度为n维的数组n,其中每个元素都是其自身坐标的标识符。也就是说,从一个数组开始,向其中填充n数组,其中每个n数组包含更多数组,深度为n-1。最深数组的元素是描述它们在完整数组中的位置的坐标。
一些例子,以防我的解释令人困惑。
n = 1
["1"]
n = 2
[
["11", "12"],
["21", "22"]
]
n = 3
[
[
["111","112","113"],
["121","122","123"],
["131","132","133"]
],
[
["211","212","213"],
["221","222","223"],
["231","232","233"]
],
[
["311","312","313"],
["321","322","323"],
["331","332","333"]
]
]
在此,“ 321”表示它是第三数组第二元素的第一元素。
规则:
- 坐标和尺寸(
n)可以为0或1索引 - 您可以假设
n两个索引选项的位数都为10以下,以防止产生歧义 - IO是灵活的。
- 特别是,坐标可以是数组,字符串等,只要它们清楚即可。“ 321” => [3,2,1]
- 输出可以是以10为底的整数,带或不带前导零。
- 如果需要,坐标可以相反,只要一致即可。“ 321” =>“ 123”
- 输出不一定必须是您语言中的数组结构。只要在数组的开头,数组的结尾和元素的分隔之间有明确的标记即可。
- 的输出
n=1只能是1 - 如果您的输出是非典型的,请确保说明格式。
- 这是代码高尔夫,因此每种语言中最短的解决方案是成功的!
data L a = L [L a] | E a。
Int -> [String]或Int -> [[String]]等等,根据输入是什么