作差法的好处就是可以少开一个变量,但是要承担溢出的风险.
用杯子倒水已经不合适形容了,最方便的就是袋子中放西瓜.A袋子里有代号为a的西瓜,B袋子里有代号为b的西瓜,小笨球想让两个袋子的西瓜倒换,但是一次只能拿出一个西瓜(拿出来之后必须放在袋子里不能放在地上云云).
那么就可以把a拿到B袋子中,然后B中就有ab两个西瓜.
再把B中的b放到A的袋子中,那么就倒换完毕.
位处理法是最棒的方法,既不需要开辟新的空间,又不会承担溢出的风险,唯一的缺点就是:不好理解.
先说说位异或,对位进行处理,同假异真.
位异或可以使得两个2进制串合并压缩成1个2进制串,然后用其中任意一个便可以求得另一个.
话句话说: