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,则通过数据类型转换来截取多余的部分

posted @ 2020-05-17 11:39  猛如泰山  阅读(183)  评论(0编辑  收藏  举报