กำหนดลำดับความยาวของการผนวกท้ายn
เพื่อเป็นการเรียงสับเปลี่ยนของตัวเลข1, 2, ..., n
ที่สามารถสร้างขึ้นได้โดยขั้นตอนต่อไปนี้:
1
เริ่มต้นด้วยหมายเลขสำหรับหมายเลขจากแต่ละ
2
ที่จะn
วางจำนวนนี้ไปยังจุดเริ่มต้นหรือจุดสิ้นสุดของลำดับ (ทั้งย่อหน้าหรือผนวกมันจึงชื่อของลำดับ)
ตัวอย่างเช่นนี่เป็นวิธีที่ถูกต้องในการสร้างลำดับ prepend-ผนวกท้ายความยาว 4:
1
21 [beginning]
213 [end]
2134 [end]
งานของคุณคือการสร้างโปรแกรมหรือฟังก์ชั่นที่จะนำตัวเลขn
จาก3
การ30
เป็น input และพิมพ์หรือส่งคืนทั้งหมดลำดับย่อหน้า-ผนวกของความยาวn
ในการสั่งซื้อ lexicographical (ถ้าคุณ outputting สตริงและรายการไม่ได้ตัวเลขดังกล่าวข้างต้น 9 จะเป็นตัวแทน เป็นตัวอักษรa-u
เพื่อรักษาความยาวสตริง) ตัวอย่างเช่นนี่คือลำดับสำหรับn = 4
:
1234 [RRR]
2134 [LRR]
3124 [RLR]
3214 [LLR]
4123 [RRL]
4213 [LRL]
4312 [RLL]
4321 [LLL]
โดยทั่วไปมี 2 n-1n
พีชคณิตย่อหน้า-ผนวกของความยาว
คุณไม่สามารถใช้ฟังก์ชั่นการเรียงลำดับในภาษาของคุณในรหัสของคุณ โปรแกรมที่สั้นที่สุดที่จะทำเช่นนี้ในภาษาใดก็ได้จะชนะ
a-u
ฉันไม่ได้เป็นแฟนของความต้องการรูปแบบการออกโดยเฉพาะอย่างยิ่งการแปลงตัวอักษร เราสามารถส่งออกรายการตัวเลขได้หรือไม่