Compito:
Dato un input intero, capire se si tratta o meno di un numero di ciclopi.
Cos'è un numero Cyclops, potresti chiedere? Bene, è un numero la cui rappresentazione binaria ne ha solo una 0
al centro!
Casi test:
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
Ingresso:
Un numero intero o tipi equivalenti. (
int
,long
,decimal
, Etc.)Supponiamo che se la valutazione dell'input comporta un overflow di numeri interi o altri problemi indesiderati, quell'input non deve essere valutato.
Produzione:
Verità o falsità.
L'output di verità / falsità deve soddisfare le specifiche del linguaggio usato per verità / falsità. (ad es. C ha
0
falso, diverso da zero come vero)
Regole della sfida:
Si presuppone che un input inferiore a 0 sia falso e quindi non debba essere valutato.
Se la lunghezza della rappresentazione binaria del numero è pari, il numero non può essere un numero Cyclope.
Regole generali:
Questo è code-golf , quindi vince la risposta più breve in byte !.
Sono vietate le scappatoie predefinite .
Le regole standard si applicano alla risposta con le regole I / O predefinite .
Questa è la mia prima sfida di programmazione di puzzle e code golf , quindi qualsiasi feedback su come dovrei migliorare sarebbe molto apprezzato!