Aufgabe:
Finden Sie bei einer Ganzzahleingabe heraus, ob es sich um eine Zyklopenzahl handelt oder nicht.
Was ist eine Cyclops-Nummer? Nun, es ist eine Zahl, deren Binärdarstellung nur eine 0
in der Mitte hat!
Testfälle:
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
Eingang:
Eine Ganzzahl oder ein äquivalenter Typ. (
int
,long
,decimal
, Etc.)Angenommen, wenn die Auswertung der Eingabe zu einem Ganzzahlüberlauf oder anderen unerwünschten Problemen führt, muss diese Eingabe nicht ausgewertet werden.
Ausgabe:
Wahrheit oder Falschheit.
Die Ausgabe von Wahrheiten / Falschheiten muss den Spezifikationen der verwendeten Sprache für Wahrheiten / Falschheiten entsprechen. (zB C hat
0
so falsch, ungleich Null wie wahr)
Herausforderungsregeln:
Eingaben, die kleiner als 0 sind, werden als falsch angenommen und müssen daher nicht ausgewertet werden.
Wenn die Länge der binären Darstellung der Zahl gerade ist, kann die Zahl keine Cyclops-Zahl sein.
Allgemeine Regeln:
Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes !.
Standardlücken sind verboten.
Für Ihre Antwort gelten Standardregeln mit Standard-E / A-Regeln .
Dies ist meine erste Programmier-Rätsel & Code-Golf- Herausforderung, daher wäre jedes Feedback zu meiner Verbesserung sehr dankbar!