Giả sử chúng ta có hai số nguyên a và b. Nhiệm vụ của chúng ta là tìm tổng của hai số nguyên này. Một hạn chế là chúng ta không thể sử dụng bất kỳ toán tử nào như + hoặc -. Vì vậy, nếu a =5 và b =7, kết quả sẽ là 12.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- Để giải quyết, chúng tôi sẽ sử dụng các toán tử logic theo bit
- Nếu b =0, thì trả về a
- nếu không, hãy sử dụng đệ quy hàm sum bằng cách cung cấp XOR b và AND b sau khi dịch chuyển trái kết quả một lần
Ví dụ (Python)
Hãy cùng chúng tôi xem cách triển khai sau đây để hiểu rõ hơn -
#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; }
Đầu vào
a = 5 b = 7
Đầu ra
12