Tentukan urutan panjang prepend-appendn
untuk menjadi permutasi dari angka 1, 2, ..., n
yang dapat dihasilkan oleh prosedur berikut:
Mulai dengan nomornya
1
.Untuk setiap angka dari
2
hinggan
, tempatkan nomor ini ke awal atau akhir urutan (baik tambahkan atau tambahkan , maka nama urutan).
Misalnya, ini adalah cara yang valid untuk menghasilkan urutan panjang tambahan 4 yang ditambahkan:
1
21 [beginning]
213 [end]
2134 [end]
Tugas Anda adalah untuk membangun program atau fungsi yang akan mengambil angka n
dari 3
menjadi 30
sebagai input, dan mencetak atau mengembalikan semua urutan panjang tambahan yang ditambahkan dalam urutan n
leksikografis (jika Anda mengeluarkan string dan bukan daftar, angka di atas 9 akan diwakili sebagai huruf a-u
, untuk menjaga panjang string). Misalnya, ini adalah pesanan untuk n = 4
:
1234 [RRR]
2134 [LRR]
3124 [RLR]
3214 [LLR]
4123 [RRL]
4213 [LRL]
4312 [RLL]
4321 [LLL]
Secara umum, ada 2 n-1 permutasi penambahan-append panjang n
.
Anda tidak boleh menggunakan fungsi penyortiran bawaan dalam bahasa Anda dalam kode Anda. Program terpendek untuk melakukan ini dalam bahasa apa pun menang.
a-u
. Bisakah kita hanya menampilkan daftar angka?