递归解法
对于上面的分析,我们可以得出: 两个数 a,b 相加, 即add(a, b),
若相加时没产生进位, 即(a & b) << 1为零,那么 add(a,b) = a ^ b;
如果(a & b) << 1大于零,说明相加时有进位,那么必须把进位给"补上",
即 (a ^ b) + ((a & b) << 1), 那么此刻又转换到了
两个数 (a ^ b) 和 ((a & b) << 1) 相加,即add(a ^ b, (a & b) << 1),
出现了递归关系, 一直递归到两数相加不发生进位时,
递归出口是当 (a & b) << 1 == 0 时,
即 add(int num1, int num2)当第二个入参num2==0时。