解 如果无法通过加减乘除,则思路只能通过位运算。 不带进位,求出结果sum求出所有的进位carrycarry左移一位(因为进位是针对于当前相加的前一位)重复1,直到carry = 0; class Solution { public: int Add(int num1, int num2) { int carry = 0; int sum = 0; while(num2 != 0){ sum = num1 ^ num2; carry = (num1 & num2) << 1; num1 = sum; num2 = carry; } return num1; } };