एक संख्या को देखते हुए अगर यह एक तह संख्या है।
एक तह संख्या एक ऐसी संख्या है जो यदि आप इसे द्विआधारी प्रतिनिधित्व लेते हैं और इसे आधा में "गुना" करते हैं, तो यह संख्या के पहले आधे भाग के XNOR गुणन का परिणाम है और दूसरी छमाही इसके अंकों के साथ उल्टा है, तो आपको मिलेगा शून्य।
यदि संख्या में अंकों की विषम संख्या है तो बाइनरी में इसका मध्य अंक 1 होना चाहिए और तह करते समय इसे नजरअंदाज कर दिया जाना चाहिए।
चूंकि मैं थोड़ा भ्रमित हो सकता हूं इसलिए मैं कुछ उदाहरण दूंगा:
178
178 का बाइनरी प्रतिनिधित्व है
10110010
इसे मोड़ने के लिए हमने पहले इसे आधे हिस्से में विभाजित किया
1011 0010
हम दूसरी छमाही को उल्टा करते हैं
1011
0100
और हम दो हिस्सों में XNOR:
0000
यह शून्य है इसलिए यह एक तह संख्या है।
1644
1644 का बाइनरी प्रतिनिधित्व है
11001101100
इसे मोड़ने के लिए हमने पहले इसे आधे हिस्से में विभाजित किया
11001 1 01100
मध्य बिट 1 है इसलिए हम इसे बाहर फेंक देते हैं।
11001 01100
हम दूसरी छमाही को उल्टा करते हैं
11001
00110
और हम दो हिस्सों में XNOR:
00000
यह शून्य है इसलिए यह एक तह संख्या है।
4254
4254 का बाइनरी प्रतिनिधित्व है
1000010011110
इसे मोड़ने के लिए हमने पहले इसे आधे हिस्से में विभाजित किया
100001 0 011110
मध्य बिट 0 है इसलिए यह फोल्डिंग नंबर नहीं है।
कार्य
आपका कार्य एक सकारात्मक संख्या में ले जाना है और यदि संख्या नहीं है तो एक सत्यता लौटाएं और यदि संख्या तह और मिथ्या है। यह कोड गोल्फ है इसलिए बाइट को नीचे रखने की कोशिश करें।
परीक्षण के मामलों
यहां पहले 99 फोल्डिंग नंबर दिए गए हैं:
[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]
0
, इसलिए नहीं। (हालांकि यह इस तरह एक तीसरा काम किया उदाहरण के लायक हो सकता है।) वही 18 के लिए चला जाता है।