Am Wed, 26 Jun 2013 22:52:17 +0200 schrieb "Gary Willoughby" <d...@kalekold.net>:
> The text from the question: > > Design a function f, such that: > > f(f(n)) == -n > Where n is a 32 bit signed integer; you can't use complex numbers > arithmetic. > > If you can't design such a function for the whole range of > numbers, design it for the largest range possible. Well some good answers are given that would work in D, too. I like how this question turns out the nature of the person much more than their general programming skill. Some options: o downvote the question and close the tab o face it with humor (e.g. throw NotImplementedException("You get the rest of the code when you give me the job")) o get dirty and hack around the issue, by actually having two 'f's (by means of C preprocessor abuse, or C++ overloads) o be the pragmatic Python programmer: no overflows, no problems o adhere strictly to the problem description and give multiple solutions that do or don't handle 0 or -2^31. Anyway I've yet to see a solution that works for all input ;) -- Marco