क्या आप जानते हैं कि एक छोटी संख्या एक बड़ी संख्या से बिट्स उधार ले सकती है ? यहाँ एक उदाहरण है। मान लें कि हमारे दो नंबर 5 और 14. पहले, उन्हें बाइनरी में लिखें:
5 14
000101 001110
पहले हम छोटी से छोटी लेने पर बड़ी संख्या से दूर सा है, और हम सबसे छोटे को दे बंद अन्य नंबर पर बिट। इसलिए
This bit turns off
|
v
000101 001110
^
|
This bit turns on
अब हमारे पास है
000111 001100
और हमारी संख्या 7 और 12 है। पहली संख्या अभी भी छोटी है, इसलिए हम जारी रखते हैं।
000111 001100
001111 001000
अब हमारे पास 15 और 8 हैं, इसलिए हम रोक सकते हैं। हम ऑपरेशन के इस सेट को "बिट-लेंडिंग" दो नंबर पर कॉल करेंगे। एक और उदाहरण करते हैं। 20 और 61।
20 61
010100 111101
010101 111100
010111 111000
111111 100000
63 32
तो हमारा अंतिम परिणाम 32, 63 है। चलो एक और करते हैं। 31, और 12. 31 पहले से ही 12 से बड़ा है, इसलिए ऐसा करने के लिए कुछ भी नहीं है! बिट-उधार 31 और 12, 31 और 12 देता है, कोई परिवर्तन नहीं।
चुनौती
आपकी चुनौती एक प्रोग्राम या फ़ंक्शन लिखना है जो दो नंबर लेता है और बिट-उन्हें उधार लेता है। दो नंबर हमेशा धनात्मक पूर्णांक होंगे। आपका इनपुट और आउटपुट किसी भी उचित प्रारूप में हो सकता है।
परीक्षण IO:
Input: 2, 3
Output: 3, 2
Input: 3, 2
Output: 3, 2
Input: 8, 23
Output: 31, 0
Input: 42, 81
Output: 63, 0
Input: 38, 41
Output: 47, 32
Input: 16, 73
Output: 23, 0
Input: 17, 17
Output: 17, 17
मानक कमियां लागू होती हैं, और बाइट्स जीत में सबसे छोटा जवाब होता है!