Tâche
Étant donné la représentation d'une ligne, affichez le nombre de quadrants traversés par cette ligne.
Représentations valides d'une ligne
Vous pouvez représenter une ligne comme
- Trois entiers signés
A
,B
etC
qui partagent sans facteur commun et oùA
etB
ne sont pas tous deux nuls, ce qui représente la ligneAx + By = C
, - Quatre entiers signés , , et , ce qui représente la ligne passant par les points et , ou
X1
Y1
X2
Y2
(X1, Y1)
(X2, Y2)
- Un type de données qui décrit une ligne, si votre langue en a une (elle doit prendre en charge les lignes verticales).
Vous ne pouvez pas prendre d'entrée dans un format qui ne permet pas une ligne verticale (par exemple, forme d'interception de pente). Si vous choisissez de prendre des entiers en entrée, vous pouvez supposer qu'ils se trouvent dans la plage inclusive [-127, 128]
.
Caractéristiques
- La sortie sera toujours 0, 2 ou 3 (une ligne ne peut jamais traverser les quatre quadrants ni passer par un seul).
- Une ligne sur un axe est considérée comme ne traversant aucun quadrant. Une ligne passant par l'origine est considérée comme ne traversant que 2 quadrants.
- Il n'est pas nécessaire de renvoyer les quadrants qui sont passés (bien que les cas de test les incluent pour plus de clarté).
- Il s'agit de code-golf , donc la réponse valide la plus courte (mesurée en octets) l'emporte.
Cas de test
Vous devrez les convertir dans un format approprié avant de les utiliser.
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)