P1001 A+B Problem

发布时间 2023-06-02 14:16:15作者: 御坂夏铃

考虑只用位运算去解决。

\(a+b\) 可以表示成 \((a\land b)+(a\vee b)\),即把共有的 \(1\) 和独有的 \(1\) 分开。

因为 \((a\land b)\in(a\vee b)\),所以可以将前者左移一位,后者异或上前者,和保持不变。

这样又回到了第一步,递归计算即可,边界条件为 \(a=0\)

其实就是在模拟二进制加法,只不过把进位放在了一起。