Problema
Los números enteros divisibles por 2 son pares; los demás enteros son impares. Un número con parte decimal no es ninguno de los dos. El cero es par y los enteros negativos siguen la misma regla.
Implementa number_parity(number).
Entrada
number: El número a clasificar.
Salida
Devuelve odd, even o neither en minúsculas.
Restricciones
−1,000,000 ≤ number ≤ 1,000,000. La entrada es finita y tiene como máximo dos decimales.
Ejemplos
Entrada:
number = 14
Salida esperada:
expected = "even"
Entrada:
double number = 14;
Salida esperada:
std::string expected = "even";
Entrada:
double number = 14;
Salida esperada:
string expected = "even";
Explicación
14 = 2 × 7, por lo que es divisible por 2.
Entrada:
number = 3.5
Salida esperada:
expected = "neither"
Entrada:
double number = 3.5;
Salida esperada:
std::string expected = "neither";
Entrada:
double number = 3.5;
Salida esperada:
string expected = "neither";
Explicación
3.5 tiene parte decimal, así que no es ni un entero impar ni par.
Cómo abordarlo
Inténtalo primero por tu cuenta y luego abre las pistas una a una.
Pista 1
Primero decide si la entrada es un número entero, porque los valores fraccionarios no son ni pares ni impares.
Pista 2
Para enteros, la paridad depende de si la división entre 2 deja resto.
Pista 3
Recuerda que cero es par, y los enteros negativos siguen la misma regla que los positivos.
Complejidad esperada
tiempo O(1), espacio extra O(1)
Referencias
Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.