Wyzwanie
Wyzwaniem jest zapisanie programu, uwzględniający współczynniki dowolnego n stopni równania wielomianowego na wejściu i zwraca integralne wartości x, dla której jest prawdziwe równanie. Współczynniki zostaną podane jako dane wejściowe w kolejności malejącej lub zwiększającej moc. Możesz założyć, że wszystkie współczynniki są liczbami całkowitymi .
Wejście i wyjście
Dane wejściowe będą stanowić współczynniki równania w malejącym lub rosnącym porządku mocy. Stopień równania, tj. Maksymalna moc x, jest zawsze o 1 mniejszy niż całkowita liczba elementów na wejściu.
Na przykład:
[1,2,3,4,5] -> represents x^4 + 2x^3 + 3x^2 + 4x + 5 = 0 (degree = 4, as there are 5 elements)
[4,0,0,3] -> represents 4x^3 + 3 = 0 (degree = 3, as there are 3+1 = 4 elements)
Wynik powinien być tylko wyraźnymi wartościami całkowitymi x, które spełniają podane równanie. Wszystkie współczynniki wejściowe są liczbami całkowitymi, a wielomian wejściowy nie będzie wielomianem zerowym . Jeśli nie ma rozwiązania dla danego równania, wynik jest niezdefiniowany.
Jeśli równanie ma powtarzające się pierwiastki, wyświetl ten konkretny pierwiastek tylko raz. Możesz wyprowadzać wartości w dowolnej kolejności. Załóżmy również, że dane wejściowe będą zawierać co najmniej 2 liczby.
Przykłady
[1,5,6] -> (-3,-2)
[10,-42,8] -> (4)
[1,-2,0] -> (0,2)
[1, 1, -39, -121, -10, 168] -> (-4, -3, -2, 1, 7)
[1, 0, -13, 0, 36] -> (-3, -2, 2, 3)
[1,-5] -> (5)
[1,2,3] -> -
Zauważ, że równanie w drugim przykładzie ma również pierwiastek 0.2, ale nie jest wyświetlane, ponieważ 0.2 nie jest liczbą całkowitą.
Punktacja
To jest golf golfowy , więc wygrywa najkrótszy kod (w bajtach)!