দুটি ইন্টিজার a এবং b-র যোগফল বের করতে হবে, কিন্তু + বা - অপারেটর ব্যবহার করা যাবে না। বিটওয়াইজ অপারেশন ব্যবহার করে সমাধান করতে হবে। উদাহরণ: a=5, b=7 → ১২।
সমাধানের পদ্ধতি
- বিটওয়াইজ XOR (
^) এবং AND (&) ব্যবহার করুন। - রিকারসিভ ফর্মুলা:
getSum(a, b) = getSum(a ^ b, (a & b) << 1)। - বেস কেস:
b == 0হলেaরিটার্ন করুন।
উদাহরণ কোড (C++)
#includeusing 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