Herausforderung
Die Herausforderung besteht darin, ein Programm zu schreiben, das die Koeffizienten einer beliebigen n-Grad-Polynomgleichung als Eingabe verwendet und die Integralwerte von x zurückgibt, für die die Gleichung gilt. Die Koeffizienten werden als Eingabe in der Reihenfolge abnehmender oder zunehmender Leistung bereitgestellt. Sie können annehmen, dass alle Koeffizienten ganze Zahlen sind .
Eingabe und Ausgabe
Die Eingabe sind die Koeffizienten der Gleichung in abnehmender oder zunehmender Reihenfolge der Leistung. Der Grad der Gleichung, dh die maximale Potenz von x, ist immer 1 kleiner als die Gesamtanzahl der Elemente in der Eingabe.
Beispielsweise:
[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)
Ihre Ausgabe sollte nur die eindeutigen Integralwerte von x sein, die die angegebene Gleichung erfüllen. Alle Eingabekoeffizienten sind Ganzzahlen, und das Eingabepolynom ist kein Nullpolynom . Wenn es für die angegebene Gleichung keine Lösung gibt, ist die Ausgabe undefiniert.
Wenn eine Gleichung wiederholte Wurzeln hat, zeigen Sie diese bestimmte Wurzel nur einmal an. Sie können die Werte in beliebiger Reihenfolge ausgeben. Nehmen Sie außerdem an, dass die Eingabe mindestens 2 Zahlen enthält.
Beispiele
[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] -> -
Beachten Sie, dass die Gleichung im zweiten Beispiel auch die Wurzel 0,2 hat, aber nicht angezeigt wird, da 0,2 keine ganze Zahl ist.
Wertung
Das ist Code-Golf , also gewinnt der kürzeste Code (in Bytes)!