Pergunta de entrevista da empresa Microsoft

How do you swap two numbers without declaring temporary variable?

Respostas da entrevista

Sigiloso

12 de out. de 2010

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

1

Sigiloso

4 de mar. de 2011

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

1

Sigiloso

22 de out. de 2010

Above will break on overflow...

Sigiloso

17 de nov. de 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) } }