- 19, Oct 2024
- #1
Учитывая число, определите, является ли оно складным числом.
Складное число — это такое число, что если вы возьмете его в двоичном представлении и «сложите» его пополам, то есть возьмем результат умножения XNOR первой половины числа и второй половины с цифрами в обратном порядке, вы получите ноль.
Если число имеет нечетное количество цифр в двоичном формате, его средняя цифра должна быть 1 и игнорируется при сворачивании.
Поскольку это может показаться немного запутанным, я приведу несколько примеров:
178
Двоичное представление числа 178:
[1, 2, 6, 10, 12, 22, 28, 38, 42, 52, 56, 78, 90, 108, 120, 142, 150, 170, 178, 204, 212, 232, 240, 286, 310, 346, 370, 412, 436, 472, 496, 542, 558, 598, 614, 666, 682, 722, 738, 796, 812, 852, 868, 920, 936, 976, 992, 1086, 1134, 1206, 1254, 1338, 1386, 1458, 1506, 1596, 1644, 1716, 1764, 1848, 1896, 1968, 2016, 2110, 2142, 2222, 2254, 2358, 2390, 2470, 2502, 2618, 2650, 2730, 2762, 2866, 2898, 2978, 3010, 3132, 3164, 3244, 3276, 3380, 3412, 3492, 3524, 3640, 3672, 3752, 3784, 3888, 3920, 4000, 4032, 4222, 4318, 4462, 4558]
Чтобы сложить это, мы сначала разделили его пополам.
100001 0 011110
Переворачиваем вторую половину
1000010011110
И мы выполняем XNOR две половины:
00000
Это ноль, поэтому это складное число.
1644
Двоичное представление числа 1644:
11001
00110
Чтобы сложить это, мы сначала разделили его пополам.
11001 01100
Средний бит равен 1, поэтому мы его выбрасываем.
11001 1 01100
Переворачиваем вторую половину
11001101100
И мы выполняем XNOR две половины:
0000
Это ноль, поэтому это складное число.
4254
Двоичное представление числа 4254:
1011
0100
Чтобы сложить это, мы сначала разделили его пополам.
1011 0010
Средний бит равен 0, поэтому это не складывающееся число.
Задача
Ваша задача — принять положительное число и вернуть истинное значение, если число сворачивается, и ложное, если это не так. Это код-гольф, поэтому постарайтесь сократить отсчет байтов.
Тестовые случаи
Вот первые 99 складывающихся чисел:
10110010
#код-гольф #число #двоичный #побитовый #задача-решения