Tarefa
Dada a representação de uma linha, produza o número de quadrantes pelos quais essa linha passa.
Representações válidas de uma linha
Você pode representar uma linha como
- Três inteiros assinados
A
,B
eC
que compartilham fator não comum e ondeA
eB
não são ambos zero, o que representa a linhaAx + By = C
, - Quatro inteiros assinados , , , e , representando a linha passando pelos pontos e
X1
Y1
X2
Y2
(X1, Y1)
(X2, Y2)
, ou - Um tipo de dados que descreve uma linha, se o seu idioma tiver um (ele deve suportar linhas verticais).
Você não pode receber entradas em nenhum formato que não permita uma linha vertical (por exemplo, formulário de interceptação de declive). Se você optar por usar números inteiros como entrada, poderá assumir que eles estão no intervalo inclusivo [-127, 128]
.
Especificações
- A saída será sempre 0, 2 ou 3 (uma linha nunca pode passar pelos quatro quadrantes, nem apenas um).
- Considera-se que uma linha em um eixo não passa por nenhum quadrante. Considera-se que uma linha através da origem passa apenas por 2 quadrantes.
- Você não precisa retornar pelos quadrantes que estão passando (embora os casos de teste os incluam para maior clareza).
- Isso é código-golfe , então a resposta mais curta e válida (medida em bytes) vence.
Casos de teste
Você precisará convertê-los para um formato adequado antes de usá-los.
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)