Viết chương trình hoặc hàm, cho một số nguyên n, xây dựng một mảng có nkích thước chiều ndài, trong đó mỗi phần tử là một định danh cho tọa độ của chính nó. Đó là, bắt đầu với một mảng, điền vào đó ncác mảng, trong đó mỗi nmảng chứa nhiều mảng hơn, cho đến độ sâu n-1. Các phần tử của mảng sâu nhất là tọa độ mô tả vị trí của chúng trong mảng đầy đủ.
Một số ví dụ trong trường hợp giải thích của tôi là khó hiểu.
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"]
]
]
Ở đây, "321" có nghĩa là nó là phần tử thứ 1 của phần tử thứ 2 của mảng thứ 3.
Quy tắc:
- Tọa độ và thứ nguyên (
n) có thể là 0 hoặc 1 được lập chỉ mục - Bạn có thể giả sử
nlà một chữ số, dưới 10 cho cả hai tùy chọn lập chỉ mục để ngăn chặn đầu ra mơ hồ - IO rất linh hoạt.
- Cụ thể, tọa độ có thể là mảng, chuỗi, vv miễn là chúng rõ ràng. "321" => [3,2,1]
- Đầu ra có thể là số nguyên trong cơ sở 10 có hoặc không có các số 0 đứng đầu.
- Các tọa độ có thể theo thứ tự ngược lại nếu bạn muốn, miễn là nó phù hợp. "321" => "123"
- Đầu ra không nhất thiết phải là một cấu trúc mảng trong ngôn ngữ của bạn. Miễn là có các dấu hiệu riêng biệt rõ ràng để bắt đầu một mảng, kết thúc một mảng và để tách các phần tử.
- Đầu ra cho
n=1chỉ có thể là 1 - Nếu đầu ra của bạn không điển hình, hãy đảm bảo giải thích định dạng.
- Đây là môn đánh gôn, vì vậy giải pháp ngắn nhất trong mỗi ngôn ngữ sẽ thắng!
data L a = L [L a] | E a.
Int -> [String]hoặc Int -> [[String]]vv, tùy thuộc vào đầu vào là gì