/** * @param {number} a * @param {number} b * @return {number} */ var getSum = function(a, b) { if(!b){ return a } var c = a ^ b//异或求没有进位的和 var d = (a & b) << 1//相与左移求两个数的进位 return getSum(c,d)//求没有进位的和与进位之和 };