解答一:
swap(int a, int b)
{
a -= b; // a(new) = a-b
b += a; // b(new) = b+a(new) = b+(a-b)=a
a = b-a; // a(result) = b-a(new)= a-(a-b)=b
}
解答二:
swap(int a, int b)
{
a -= b; // a(new) = a-b
b += a; // b(new) = b+a(new) = b+(a-b)=a
a = b-a; // a(result) = b-a(new)= a-(a-b)=b
}
解答二:
b=(a=(b=(a^b))^a)^b 解答三: a = a^(a^b); b = b^(a^b); |