Завдання:
З огляду на ціле число, з’ясуйте, чи є це число Циклопів.
Ви можете запитати число циклопів? Ну, це число, бінарне представлення якого лише одне 0
в центрі!
Випробування:
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
Вхід:
Цілі чи еквівалентні типи. (
int
,long
,decimal
І т.д.)Припустимо, що якщо оцінка вхідних даних призводить до переповнення цілого чи інших небажаних проблем, тоді цей вхід не повинен оцінюватися.
Вихід:
Істинна чи фальшива.
Програма Truthy / Falsy повинна відповідати специфікаціям використовуваної мови для truthy / falsy. (наприклад, C має
0
помилковий, ненульовий, як істинний)
Правила виклику:
Вхідні дані, менші за 0, вважаються помилковими, і тому їх не потрібно оцінювати.
Якщо довжина двійкового представлення числа є парною, то число не може бути числом Циклопа.
Загальні правила:
Це код-гольф , тому найкоротший відповідь у байтах виграє !.
Бійниці за замовчуванням заборонені.
Для вашої відповіді застосовуються стандартні правила з типовими правилами вводу / виводу .
Це моя перша головоломка з програмуванням та кодом для гольфу , тому будь-які відгуки про те, як я повинен покращити, будуть дуже вдячні!