解题思路:已知gcd(x,y)=n。
有|x-y|<=x⊕y,x和y为n的倍数,则x⊕y最小值为n。
想让x⊕y=n,可以使x=n*(2^r),y=n*(2^r+1),当且仅当x&n=0时r满足。
此题也可直接使r=31,使x的二进制位一定与n无交集,得到x,y。
解题代码:

解题思路:已知gcd(x,y)=n。
有|x-y|<=x⊕y,x和y为n的倍数,则x⊕y最小值为n。
想让x⊕y=n,可以使x=n*(2^r),y=n*(2^r+1),当且仅当x&n=0时r满足。
此题也可直接使r=31,使x的二进制位一定与n无交集,得到x,y。
解题代码: