Tulis program atau fungsi untuk menghasilkan output berikut dalam urutan yang benar.
EDIT: Simbol-simbol itu tidak matematika! Angka-angka hanya mewakili data unik dan +dan -bisa menjadi dua simbol sembarang.
Ambil input bilangan bulat non-negatif n. Baris pertama selalu -, bahkan untuk n = 0.
- Jika baris saat ini
-, baris berikutnya adalah1+2+ ... (n-1)+n-- n = 4:
-=>1+2+3+4-
- n = 4:
- Jika bilangan bulat terakhir sama dengan n, hapus semua bilangan bulat dari ujung yang segera diikuti oleh
-, lalu ubah yang terakhir+menjadi-- n = 4:
1-2+3-4-=>1-2- - EDIT: Ketika string penuh (semua bilangan bulat dari 1 ke n disertakan), hapus semua bilangan bulat dari ujung yang diikuti oleh
-, hingga Anda mencapai bilangan bulat diikuti oleh a+. Biarkan bilangan bulat itu tetapi ubah berikut+ke a- - Dengan menggunakan contoh yang sama seperti di atas (yang tidak mengikuti
-), hapus4-, hapus3-, ubah2+menjadi2-.1-tidak berubah sejak kami berhenti2. Hasil:1-2-
- n = 4:
- Jika bilangan bulat terakhir kurang dari n, tambahkan bilangan bulat yang tersisa dengan
+masing-masing setelah bilangan bulat , kecuali bilangan bulat terakhir yang harusnya-ditambahkan- n = 4:
1+2-=>1+2-3+4- - EDIT: Jika string saat ini tidak penuh (tidak mengandung semua bilangan bulat dari 1 ke n), tambahkan setiap bilangan bulat yang belum termasuk dalam urutan naik hingga n-1 dengan
+setelah masing-masing, dan kemudian tambahkan bilangan bulat terakhir n diikuti oleh a- - Jika baris saat ini adalah
1-, tambahkan2+, tambahkan3+yang n-1 jika n = 4. Kemudian tambahkan4-. Hasil:1-2+3+4-
- n = 4:
- Jika baris saat ini berisi semua bilangan bulat dan masing-masing diikuti segera oleh a
-, keluar dari kode- n = 4:
1-2-3-4-=> END
- n = 4:
Tidak boleh ada spasi di depan atau di belakang garis apa pun. Harus ada jeda baris di antara setiap baris. Mungkin ada atau tidak ada jeda baris pada baris terakhir.
EDIT: Anda harus menguji kode Anda hingga setidaknya n = 10 (lebih dari 1000 baris output jadi saya tidak bisa memasukkannya di sini). Angka apa pun yang tidak menyebabkan kode Anda kehabisan sumber daya harus (akhirnya!) Menghasilkan output yang benar tetapi Anda tidak harus menunggu sampai alam semesta berakhir!
Ini adalah kode-golf , jadi kode terpendek dalam byte menang!
Input n = 0:
-
Input n = 1:
-
1-
Input n = 2:
-
1+2-
1-
1-2-
Input n = 4:
-
1+2+3+4-
1+2+3-
1+2+3-4-
1+2-
1+2-3+4-
1+2-3-
1+2-3-4-
1-
1-2+3+4-
1-2+3-
1-2+3-4-
1-2-
1-2-3+4-
1-2-3-
1-2-3-4-
s*=<condition>