leetcode 两整数之和
2020-05-17 11:39:12
不使用运算符 + 和 - ,计算两整数 a 、b 之和。
示例 1:
输入: a = 1, b = 2
输出: 3
示例 2:
输入: a = -2, b = 3
输出: 1
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sum-of-two-integers
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
1 #include <iostream> 2 3 class Solution { 4 public: 5 int getSum(int a, int b) { 6 int x, y; 7 while ((a&b) != 0) { 8 //i++; 9 // 当a&b为0,表示不再进位,则a^b 可以表示为加法 10 x = a ^ b; 11 y = (int)((a & b) * 2); 12 a = x; 13 b = y; 14 } 15 16 int result = a ^ b; 17 18 return result; 19 } 20 }; 21 int main() 22 { 23 24 Solution me; 25 std::cout << me.getSum(36, -16); 26 27 getchar(); 28 }
通过不断的异或和与运算,如果是6-1=5,则通过数据类型转换来截取多余的部分