मान लीजिए कि हमारे पास दो पूर्णांक a और b हैं। हमारा कार्य इन दो पूर्णांकों का योग ज्ञात करना है। एक बाधा यह है कि, हम + या - जैसे किसी भी ऑपरेटर का उपयोग नहीं कर सकते हैं। तो अगर a =5 और b =7, तो परिणाम 12 होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- समाधान के लिए हम बिटवाइज़ लॉजिकल ऑपरेटरों का उपयोग करेंगे
- यदि b =0 है, तो a वापस करें
- अन्यथा, परिणाम को एक बार बाईं ओर स्थानांतरित करने के बाद XOR b, और a AND b प्रदान करके योग फ़ंक्शन का पुनरावर्ती उपयोग करें
उदाहरण (पायथन)
आइए एक बेहतर समझ प्राप्त करने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <iostream> using namespace std; class Solution { public: int getSum(int a, int b) { return b == 0?a:getSum(a^b, (unsigned int)(a&b)<<1); } }; main(){ Solution ob; cout<<ob.getSum(5,7)<<endl; }
इनपुट
a = 5 b = 7
आउटपुट
12