Напишіть програму або функцію, яка за заданим цілим числом 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" означає, що це 1-й елемент 2-го елемента 3-го масиву.
Правила:
- Координати та розмірність (
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]]інше, залежно від того, який вхід