๐๐ 371. ไธคๆดๆฐไนๅ
2022ๅนด10ๆ10ๆฅ
- algorithm
๐๐ 371. ไธคๆดๆฐไนๅ
้พๅบฆ: ๐ ๐
้ฎ้ขๆ่ฟฐ
่งฃๆณ
class Solution {
public int getSum(int a, int b) {
// ๆ่ทฏ๏ผ
// ไฝ่ฟ็ฎ
// ้ฆๅ
ๆ็ฎๅ็ a & b ๅไธบไธไฝไบ่ฟๅถๆฐ๏ผๆปก่ถณ
// a b | y c
// 0 0 | 0 0
// 0 1 | 1 0
// 1 0 | 1 0
// 1 1 | 0 1
// ๅณ y = a ^ b; c = (a & b) << 1
// ๆฉๅฑๅฐๅคไฝ่ฟ็ฎ๏ผไพ๏ผa = 11(1011), b = 7(0111), y = 18(1 0010)๏ผ้ช่ฏ๏ผ
// a = 1011, b = 0111, ๆฑ a + b
// --> c = ((a & b) << 1) = (0011) << 1 = (0110)
// --> y = a ^ b = (1100)
// --> ๆฑ c + y
while(a != 0) {
int c = ((a & b) << 1);
int y = a ^ b;
a = c;
b = y;
}
return b;
}
}