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