pengantar
Manusia adalah spesies yang luar biasa, tetapi kadang-kadang kita bisa canggung untuk memahaminya — terutama untuk komputer. Secara khusus, kami sepertinya suka menulis polinomial dengan cara yang sangat berbelit-belit dengan aturan yang tampaknya arbitrer.
Apa program terpendek yang dapat Anda tulis untuk memformat polinomial dengan benar menggunakan aturan ini?
Tantangan
Memasukkan
Daftar bilangan bulat antara -1000 dan 1000 (inklusif), yang mewakili koefisien polinomial, dengan entri terakhir menjadi koefisien x ^ 0 (konstanta), yang terakhir adalah koefisien x ^ 1, dll.
Keluaran
Sebuah string yang mewakili polinomial ini dalam notasi matematika yang diformat dengan benar dari manusia.
Aturan:
- Tanda pada koefisien memimpin hanya ditampilkan jika negatif.
Right: -x^2+3
Wrong: +x^2+3
- Komponen dengan koefisien 0 tidak dicetak (kecuali untuk kasus sudut di mana semua koefisien 0 *).
Right: x^5-x^2+3
Wrong: x^5+0x^4+0x^3-x^2+0x+3
- Koefisien
-1
dan+1
akan ditampilkan tanpa angka 1, kecuali jika itu adalah konstanta.
Right: x^5-x^2+1
Wrong: 1x^5-1x^2+1
- Eksponen hanya ditampilkan jika lebih besar dari 1 dan variabel hanya ditampilkan jika eksponen lebih besar dari 0.
Right: 3x^3-7x^2+2x+1
Wrong: 3x^3-7x^2+2x^1+1x^0
- * Kasus sudut: walaupun nilai nol biasanya menghasilkan tidak mencetak komponen itu, jika semua koefisien nol maka konstanta 0 harus dicetak.
Right: 0
Wrong: 0x+0
Wrong: (nothing)
- Ini adalah kode-golf sehingga pemenang akan menjadi program dengan byte paling sedikit.
Contoh Input dan Output
Input: Output:
[0] 0
[0,0] 0
[0,-1,35,0] -x^2+35x
[5,1,7,-9] 5x^3+x^2+7x-9
[100,0,0,-1] 100x^3-1
[931,21,-11,1] 931x^3+21x^2-11x+1
Saya berharap dapat melihat solusi Anda. Selamat bersenang-senang!
EDIT:
- Anda dapat mengelilingi operasi berdasarkan spasi jika Anda mau. Jadi
3x+5
dan3x + 5
keduanya baik-baik saja.3x+ 5
dan3x +5
tidak. - Jika Anda ingin menghasilkan karakter eksponen aktual (katakanlah di Tex) yang diizinkan karena lebih dekat dengan cara manusia menulis.
- Koefisien harus muncul tanpa desimal, misalnya
9x^2
benar,9.0x^2
tidak.
1x
-> x
tidak berubah 21x^2
menjadi 2x^2
.
3x^2 + 4
versus3x^2+4
?