Задача:
С учетом целочисленного ввода выясните, является ли это число Циклопом.
Вы можете спросить, что такое число Циклопа? Ну, это число, двоичное представление которого имеет только один 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
И т.д.)Предположим, что если оценка входных данных приводит к целочисленному переполнению или другим нежелательным проблемам, то этот вход не должен оцениваться.
Выход:
Истина или ложь.
Выходные данные «Правда / ложь» должны соответствовать спецификациям используемого языка для «Правда / ложь». (например, C имеет значение
0
false, ненулевое значение true)
Правила соревнований:
Предполагается, что входные данные, которые меньше 0, являются ложными и поэтому не требуют оценки.
Если длина двоичного представления числа четная, то число не может быть числом Циклопа.
Основные правила:
Это код-гольф , поэтому самые короткие ответы в байтах выигрывают!
Лазейки по умолчанию запрещены.
К вашему ответу применяются стандартные правила с правилами ввода / вывода по умолчанию .
Это моя первая задача по Программированию Пазлов и Code Golf , поэтому любые отзывы о том, как я должен совершенствоваться, будут высоко оценены!