计算两个数的和,本质其实就是求解 无进位和 与 进位 的两部分的和。而高赞对于无进位和与进位已经提供了详细的求解方法,因此这两部分的求解在这里就略去了。在这里我们提供了本题的递归解法,相比循环解法更加简单清晰。注意:当进位为0时,递归结束,返回无进位和即可。 代码如下: class Solution { public: int Add(int num1, int num2) { if(num2==0) return num1; return Add(num1^num2,(num1&num2)<<1);//在这里第一个参数我们用来计算无进位和,第二个参数用来计算进位 } };