考虑只用位运算去解决。
\(a+b\) 可以表示成 \((a\land b)+(a\vee b)\),即把共有的 \(1\) 和独有的 \(1\) 分开。
因为 \((a\land b)\in(a\vee b)\),所以可以将前者左移一位,后者异或上前者,和保持不变。
这样又回到了第一步,递归计算即可,边界条件为 \(a=0\)。
其实就是在模拟二进制加法,只不过把进位放在了一起。
标签:前者,land,P1001,异或,vee,Problem From: https://www.cnblogs.com/landsol/p/17451637.html