कई प्रोग्रामिंग भाषा पूर्णांक के बाइनरी (बेस -2) अंकों को हेरफेर करने के लिए ऑपरेटर प्रदान करती हैं। इन ऑपरेटरों को अन्य ठिकानों पर सामान्यीकृत करने का एक तरीका यह है:
चलो एक्स और वाई आधार में एकल अंकों की संख्या हो बी । यूनिरी ऑपरेटर को परिभाषित करें~ और द्विआधारी ऑपरेटरों &, |और ^ऐसा है कि:
- ~ x = (बी - 1) - x
- x & y = मिनट (x, y)
- x | y = अधिकतम (x, y)
- x ^ y = (x & ~ y) | (y & ~ x)
ध्यान दें कि यदि B = 2 है, तो हमें परिचित बिटवाइज़ NOT, AND, OR, और XOR ऑपरेटर मिलते हैं।
B = 10 के लिए, हमें "दशमलव XOR" तालिका मिलती है:
^ │ 0 1 2 3 4 5 6 7 8 9
──┼────────────────────
0 │ 0 1 2 3 4 5 6 7 8 9
1 │ 1 1 2 3 4 5 6 7 8 8
2 │ 2 2 2 3 4 5 6 7 7 7
3 │ 3 3 3 3 4 5 6 6 6 6
4 │ 4 4 4 4 4 5 5 5 5 5
5 │ 5 5 5 5 5 4 4 4 4 4
6 │ 6 6 6 6 5 4 3 3 3 3
7 │ 7 7 7 6 5 4 3 2 2 2
8 │ 8 8 7 6 5 4 3 2 1 1
9 │ 9 8 7 6 5 4 3 2 1 0
मल्टी-डिजिट नंबरों के लिए, सिंगल-डिजिट ऑपरेटर डिजिट-बाय-डिजिट लागू करें। उदाहरण के लिए, 12345 ^ 24680 = 24655, क्योंकि:
- 1 ^ 2 = 2
- 2 ^ 4 = 4
- 3 ^ 6 = 6
- 4 ^ 8 = 5
- ५ ^ ० = ५
यदि ऑपरेंड अलग-अलग लंबाई के होते हैं, तो छोटे को अग्रणी शून्य के साथ पैड करें।
चुनौती
जितना संभव हो, कुछ बाइट्स में लिखें, एक प्रोग्राम या फ़ंक्शन जो इनपुट दो पूर्णांकों के रूप में लेता है (जो कि 0 और 999 999 के बीच माना जा सकता है, समावेशी) और उपरोक्त के रूप में दो नंबरों के "दशमलव XOR" को आउटपुट करता है।
परीक्षण के मामलों
- 12345, 24680 → 24655
- 12345, 6789 → 16654
- 2019, 5779 → 5770
- 0, 999999999 → 999999999
- 0, 0 → 0
09इनपुट के लिए स्वीकार्य परिणाम है 90, 99?
A^B^B=A
a^b=b^aऔर a^b^b=aएक अजीब प्रधानमंत्री भाजक के साथ अड्डों के लिए