मान लीजिए कि हमारे पास दो पूर्णांक 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