How do you swap two numbers without declaring temporary variable?
Interview Answers
Anonymous
12 Oct 2010
void swap( int &a, int &b )
{
a = a + b;
b = a - b;
a = a -b;
}
1
Anonymous
4 Mar 2011
a = a ^ b
b = a ^ b
a = a ^ b
1
Anonymous
22 Oct 2010
Above will break on overflow...
Anonymous
17 Nov 2010
In Java...
int a;
int b;
{
try {
a += b; \\ a = a + b, might overflow
b = a - b; \\ b = (a + b) - b
a -= b; \\ a = (a + b) - (a)
} catch (OverflowException e) {
a -= b; \\ a = a - b, this might also overflow, but never if a + b overflows
b += a; \\ b = b+ (a - b)
a = b - a; \\ a = (a) - (a - b)
}
}