Aufgabe
Geben Sie bei einer gegebenen Darstellung einer Linie die Anzahl der Quadranten aus , die diese Linie durchläuft.
Gültige Darstellungen einer Linie
Sie können eine Linie als darstellen
- Drei signierte ganze Zahlen
A
,B
undC
die teilen keinen gemeinsamen Faktor und woA
undB
nicht beide Null, die die LinieAx + By = C
, - Vier signierte ganze Zahlen , , , und , die die Linie durch die Punkte und oder
X1
Y1
X2
Y2
(X1, Y1)
(X2, Y2)
- Ein Datentyp, der eine Linie beschreibt, falls Ihre Sprache eine hat (vertikale Linien müssen unterstützt werden).
Sie dürfen keine Eingabe in einem Format vornehmen, das keine vertikale Linie zulässt (z. B. Steigungsschnittform). Wenn Sie sich für die Eingabe von Ganzzahlen entscheiden, können Sie davon ausgehen, dass diese im Inklusivbereich liegen [-127, 128]
.
Spezifikationen
- Die Ausgabe ist immer 0, 2 oder 3 (eine Linie kann niemals alle vier Quadranten oder nur einen einzigen Quadranten durchlaufen).
- Es wird davon ausgegangen, dass eine Linie auf einer Achse keine Quadranten durchläuft. Es wird angenommen, dass eine Linie durch den Ursprung nur durch zwei Quadranten verläuft.
- Sie müssen nicht zurückgeben, welche Quadranten durchlaufen werden (obwohl die Testfälle sie aus Gründen der Übersichtlichkeit enthalten).
- Das ist Code-Golf , also gewinnt die kürzeste gültige Antwort (gemessen in Bytes).
Testfälle
Sie müssen diese in ein geeignetes Format konvertieren, bevor Sie sie verwenden können.
1x + 1y = 1 -> 3 (quadrants I, II, and IV)
-2x + 3y = 1 -> 3 (quadrants I, II, and III)
2x + -3y = 0 -> 2 (quadrants III and I)
1x + 1y = 0 -> 2 (quadrants II and IV)
3x + 0y = 6 -> 2 (quadrants I and IV)
-3x + 0y = 5 -> 2 (quadrants II and III)
0x + -8y = 4 -> 2 (quadrants III and IV)
0x + 1y = 0 -> 0 (lies on the x-axis)
1x + 0y = 0 -> 0 (lies on the y-axis)