Problema
Números inteiros divisíveis por 2 são pares; outros inteiros são ímpares. Um número com parte fracionária não é nem par nem ímpar. Zero é par, e inteiros negativos seguem a mesma regra.
Implemente number_parity(number).
Entrada
number: O número a ser classificado.
Saída
Retorne odd, even ou neither como texto em minúsculas.
Restrições
−1.000.000 ≤ number ≤ 1.000.000. A entrada é finita e possui no máximo duas casas decimais.
Exemplos
Entrada:
number = 14
Saída esperada:
expected = "even"
Entrada:
double number = 14;
Saída esperada:
std::string expected = "even";
Entrada:
double number = 14;
Saída esperada:
string expected = "even";
Explicação
14 = 2 × 7, então é divisível por 2.
Entrada:
number = 3.5
Saída esperada:
expected = "neither"
Entrada:
double number = 3.5;
Saída esperada:
std::string expected = "neither";
Entrada:
double number = 3.5;
Saída esperada:
string expected = "neither";
Explicação
3.5 possui uma parte fracionária, portanto não é nem um inteiro ímpar nem um inteiro par.
Como abordar
Tente sozinho primeiro e depois abra uma dica de cada vez.
Dica 1
Primeiro veja se a entrada é um número inteiro, já que valores fracionários não são nem ímpares nem pares.
Dica 2
Para inteiros, a paridade depende de a divisão por 2 deixar resto.
Dica 3
Lembre-se de que zero é par, e inteiros negativos seguem a mesma regra dos positivos.
Complexidade esperada
O(1) tempo, O(1) espaço extra
Referências
Este desafio foi adaptado para o CodeUtility. Siga o enunciado e as restrições acima.