int add(int a, int b) { int i = (a&b)<<1; int j = a^b; if(i == 0) { return j; } else return add(j, i); }
a + b = a^b + ((a&b)<<1)
a^b 表示不进位的位和
(a&b)<<1 表示向左移1为,表示进位