Tarea:
Dada una entrada entera, averigua si es o no un Número de Cyclops.
¿Qué es un número de Cyclops, puede preguntar? ¡Bueno, es un número cuya representación binaria solo tiene uno 0
en el centro!
Casos de prueba:
Input | Output | Binary | Explanation
--------------------------------------
0 | truthy | 0 | only one zero at "center"
1 | falsy | 1 | contains no zeroes
5 | truthy | 101 | only one zero at center
9 | falsy | 1001 | contains two zeroes (even though both are at the center)
10 | falsy | 1010 | contains two zeroes
27 | truthy | 11011 | only one zero at center
85 | falsy | 1010101 | contains three zeroes
101 | falsy | 1100101 | contains three zeroes
111 | falsy | 1101111 | only one zero, not at center
119 | truthy | 1110111 | only one zero at center
Entrada:
Un entero o tipos equivalentes. (
int
,long
,decimal
, Etc.)Suponga que si la evaluación de la entrada da como resultado un desbordamiento de enteros u otros problemas no deseados, entonces esa entrada no tiene que evaluarse.
Salida:
Verdad o falsedad.
La salida de verdad / falsedad debe cumplir con las especificaciones del lenguaje utilizado para verdad / falsedad. (p. ej., C es
0
tan falso, distinto de cero como verdadero)
Reglas de desafío:
Se supone que una entrada menor que 0 es falsa y, por lo tanto, no es necesario evaluarla.
Si la longitud de la representación binaria del número es par, entonces el número no puede ser un número de Cyclops.
Reglas generales:
Este es el código de golf , por lo que gana la respuesta más corta en bytes.
Las lagunas predeterminadas están prohibidas.
Se aplican reglas estándar para su respuesta con las reglas de E / S predeterminadas .
Este es mi primer desafío de programación de puzzles y golf de código , por lo que cualquier comentario sobre cómo debería mejorar sería muy apreciado.