मान लीजिए हमारे पास दो पूर्णांक a और b हैं। हमारा कार्य इन दो पूर्णांकों का योग ढूंढना है। एक प्रतिबंध यह है कि हम + या - जैसे किसी ऑपरेटर का उपयोग नहीं कर सकते। यदि a = 5 और b = 7, तो परिणाम 12 होगा।
हल करने के चरण
- हल करने के लिए हम बिटवाइज लॉजिकल ऑपरेटर्स का उपयोग करेंगे
- यदि b = 0, तो a वापस करें
- अन्यथा, पुनरावर्ती रूप से sum फंक्शन का उपयोग 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