题意介绍
输入两个数,返回两个数的和,要求不能用加减号
解题
可以借助位运算。加法包括进位和相加两个过程,其中进位可以用与运算,相加可以用异或运算,
对两个数求与和异或,如果与为0,即进位为0,则直接输出异或结果,否则,将进位左移一位,然后继续与异或结果相加,直到进位为0,输出结果。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13
| class Solution{ public : int getSum(int a,int b){ while(a) { b = a^b; a = a&b; a = a<<1; } return b; } };
|