Wprowadzenie
Ludzie są niezwykłym gatunkiem, ale czasami możemy być bardzo niezręczni, aby zrozumieć - szczególnie w przypadku komputerów. W szczególności lubimy pisać wielomiany w bardzo zawiły sposób z pozornie arbitralnymi regułami.
Jaki jest najkrótszy program, który możesz napisać, aby poprawnie sformatować wielomian przy użyciu tych reguł?
Wyzwanie
Wkład
Lista liczb całkowitych z zakresu od -1000 do 1000 (włącznie), reprezentujących współczynniki wielomianu, przy czym ostatni wpis jest współczynnikiem x ^ 0 (stała), a drugi ostatni jest współczynnikiem x ^ 1 itp.
Wydajność
Ciąg reprezentujący ten wielomian w poprawnie sformatowanym zapisie matematycznym ludzi.
Zasady:
- Znak na wiodącym współczynniku jest wyświetlany tylko wtedy, gdy jest ujemny.
Right: -x^2+3
Wrong: +x^2+3
- Składniki o współczynniku 0 nie są drukowane (z wyjątkiem przypadku w rogu, w którym wszystkie współczynniki mają wartość 0 *).
Right: x^5-x^2+3
Wrong: x^5+0x^4+0x^3-x^2+0x+3
- Współczynniki
-1
i+1
mają być wyświetlane bez 1, chyba że są stałe.
Right: x^5-x^2+1
Wrong: 1x^5-1x^2+1
- Wykładnik jest wyświetlany tylko wtedy, gdy jest większy niż 1, a zmienna jest wyświetlana tylko wtedy, gdy wykładnik jest większy niż 0.
Right: 3x^3-7x^2+2x+1
Wrong: 3x^3-7x^2+2x^1+1x^0
- * Przypadek narożny: podczas gdy wartości zerowe zwykle nie powodują drukowania tego elementu, jeśli wszystkie współczynniki są równe zero, należy wydrukować stałą 0.
Right: 0
Wrong: 0x+0
Wrong: (nothing)
- To jest golf golfowy, więc zwycięzcą zostanie program z najmniejszą liczbą bajtów.
Przykład wejścia i wyjścia
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
Czekam na Wasze rozwiązania. Baw się dobrze!
EDYTOWAĆ:
- Jeśli chcesz, możesz otaczać operacje białymi znakami. Więc
3x+5
i3x + 5
oba są w porządku.3x+ 5
i3x +5
nie są. - Jeśli chcesz tworzyć rzeczywiste znaki wykładnicze (powiedzmy w Tex), jest to dozwolone, ponieważ jest jeszcze bliżej pisania przez ludzi.
- Współczynniki muszą pojawiać się bez miejsc po przecinku, np. Są
9x^2
poprawne,9.0x^2
nie są.
1x
-> x
zamiana nie zmieni się 21x^2
w 2x^2
.
3x^2 + 4
kontra3x^2+4
?