Вступ
Люди - чудовий вид, але ми можемо бути дуже незручними для розуміння іноді - особливо для комп'ютерів. Зокрема, нам здається, що ми хочемо писати поліноми в дуже складній формі з наче довільними правилами.
Яку найкоротшу програму ви можете написати, щоб правильно відформатувати поліном, використовуючи ці правила?
Виклик
Вхідні дані
Список цілих чисел від -1000 до 1000 (включно), що представляють коефіцієнти многочлена, причому останній запис є коефіцієнтом x ^ 0 (константа), другий останній - коефіцієнт x ^ 1 тощо.
Вихідні дані
Рядок, що представляє цей многочлен у правильно відформатованому математичному позначенні людини.
Правила:
- Знак на провідному коефіцієнті відображається лише в тому випадку, якщо він від'ємний.
Right: -x^2+3
Wrong: +x^2+3
- Компоненти з коефіцієнтом 0 не друкуються (за винятком кутового випадку, коли всі коефіцієнти дорівнюють 0 *).
Right: x^5-x^2+3
Wrong: x^5+0x^4+0x^3-x^2+0x+3
- Коефіцієнти
-1
і+1
повинні відображатися без 1, якщо вони не є постійними.
Right: x^5-x^2+1
Wrong: 1x^5-1x^2+1
- Експонент відображається лише в тому випадку, якщо він більший за 1, а змінна відображається лише в тому випадку, якщо показник більше 0.
Right: 3x^3-7x^2+2x+1
Wrong: 3x^3-7x^2+2x^1+1x^0
- * Кутовий випадок: хоча нульові значення зазвичай призводять до не друку цього компонента, якщо всі коефіцієнти дорівнюють нулю, слід надрукувати константу 0.
Right: 0
Wrong: 0x+0
Wrong: (nothing)
- Це код-гольф, тому переможцем стане програма з найменшими байтами.
Приклад введення та виводу
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
Я з нетерпінням чекаю Ваших рішень. Веселіться!
Редагувати:
- Ви можете оточити операції пробілами, якщо бажаєте. Так
3x+5
і3x + 5
обидва добре.3x+ 5
і3x +5
не є. - Якщо ви хочете створити фактичні символи-експоненти (скажімо в тексті), це дозволено, оскільки це ще ближче до того, як люди пишуть.
- Коефіцієнти повинні з’являтися без десятків, наприклад
9x^2
, правильно,9.0x^2
ні.
1x
-> x
заміна не змінюється 21x^2
в 2x^2
.
3x^2 + 4
проти3x^2+4
?