Designing function f(f(n)) == -n

前端 未结 30 2820
清酒与你
清酒与你 2020-12-02 03:32

A question I got on my last interview:

Design a function f, such that:

f(f(n)) == -n

Where n<

30条回答
  •  萌比男神i
    2020-12-02 03:41

    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
    }
    

提交回复
热议问题