Xác định một chuỗi độ dài nối thêmn
vào là một hoán vị của các số 1, 2, ..., n
có thể được tạo bằng thủ tục sau:
Bắt đầu với số lượng
1
.Đối với mỗi số từ
2
đếnn
, đặt số này vào đầu hoặc cuối của chuỗi ( thêm vào hoặc nối thêm nó, do đó là tên của chuỗi).
Ví dụ: đây là một cách hợp lệ để tạo ra một chuỗi bổ sung có độ dài 4:
1
21 [beginning]
213 [end]
2134 [end]
Nhiệm vụ của bạn là xây dựng một chương trình hoặc chức năng đó sẽ mất một số n
từ 3
để 30
làm đầu vào, và in hoặc trả lại toàn bộ trình tự thêm vào trước-append chiều dài n
trong thứ tự từ điển (nếu bạn đang xuất ra chuỗi và không liệt kê, số trên 9 sẽ được đại diện dưới dạng chữ cái a-u
, để duy trì độ dài chuỗi). Ví dụ: đây là thứ tự cho n = 4
:
1234 [RRR]
2134 [LRR]
3124 [RLR]
3214 [LLR]
4123 [RRL]
4213 [LRL]
4312 [RLL]
4321 [LLL]
Nói chung, có 2 hoán vị bổ sung n-1 có độ dài n
.
Bạn không được sử dụng bất kỳ chức năng sắp xếp tích hợp nào trong ngôn ngữ của bạn trong mã của bạn. Chương trình ngắn nhất để làm điều này trong bất kỳ ngôn ngữ nào sẽ thắng.
a-u
. Chúng ta chỉ có thể xuất danh sách các số?