Microsoft Interview Question

How do you swap two numbers without declaring temporary variable?

Interview Answers

Anonymous

Oct 12, 2010

void swap( int &a, int &b ) { a = a + b; b = a - b; a = a -b; }

1

Anonymous

Mar 4, 2011

a = a ^ b b = a ^ b a = a ^ b

1

Anonymous

Oct 22, 2010

Above will break on overflow...

Anonymous

Nov 17, 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) } }