A question I got on my last interview:
Design a function f, such that: f(f(n)) == -n Where n<
Design a function f, such that:
f
f(f(n)) == -n
Where n<
n<
works for n= [0 .. 2^31-1]
int f(int n) { if (n & (1 << 31)) // highest bit set? return -(n & ~(1 << 31)); // return negative of original n else return n | (1 << 31); // return n with highest bit set }