आपकी चुनौती, क्या आपको इसे स्वीकार करने का विकल्प चुनना चाहिए, एक पूर्णांक दिया गया है, K >= 1गैर-नकारात्मक पूर्णांक खोजें Aऔर B इस तरह कि पकड़ के बाद कम से कम दो स्थितियों में से एक:
K = 2^A + 2^BK = 2^A - 2^B
यदि ऐसा मौजूद नहीं है Aऔर B, आपका कार्यक्रम किसी भी फैशन में व्यवहार कर सकता है। (स्पष्ट करने के लिए, Aऔर Bबराबर हो सकता है।)
परीक्षण के मामलों
किसी संख्या में अक्सर कई समाधान होते हैं, लेकिन यहां कुछ हैं:
K => A, B
1 => 1, 0
15 => 4, 0 ; 16 - 1 = 15
16 => 5, 4 ; 32 - 16 = 16; also 3, 3: 8 + 8 = 16
40 => 5, 3 ; 2^5 + 2^3 = 40
264 => 8, 3
17179867136 => 34, 11 ; 17179869184 - 2048 = 17179867136
अंतिम परीक्षण के मामले में, 17179867136, 10 सेकंड से कम में चलाना चाहिए किसी भी अपेक्षाकृत आधुनिक मशीन पर। यह एक कोड गोल्फ है, इसलिए बाइट्स में सबसे छोटा कार्यक्रम जीत जाता है। आप एक पूर्ण कार्यक्रम या एक समारोह का उपयोग कर सकते हैं।
16, दोनों 5,4और 3,3मान्य हैं।
A, Bनकारात्मक हो सकता है? (उदाहरण के -1, -1लिए 1)