给出两个整数a和b, 求他们的和, 但不能使用 +
等数学运算符。
思路:模拟二进制加法运算,^ 求得基位,&求得进位。不断循环,直至进位为0。
核心公式:a + b = (a ^ b) + (a & b << 1) 。
代码:
class Solution { public: /* * @param : An integer * @param : An integer * @return: The sum of a and b */ int aplusb(int a, int b) { // write your code here int aa;//基位 int bb;//进位 do { aa=a^b; bb=(a&b)<<1; a=aa; b=bb; }while(b!=0); return a; } };