解f(f(x)) = -x

 static int Function(int x)
   {
            if (x == 0)
            {
                return 0;
            }
            if (x % 2 == 0)
            {
                if (x == Int32.MinValue)
                {
                    return Function(Int32.MinValue + 1);
                }
                x = -1 * x;
                x += (int)(Math.Pow(-1, x >> 31));
            }
            else
            {
                x -= (int)(Math.Pow(-1, x >> 31));
            }
         return x;
  }
  在别人博客上看到了这道题目,花了几个小时解的。然后再看看别人的,开始以为解的跟别人不一样。仔细看看别人的代码。其实一样,代码还没人精简。唉,记录下。
posted @ 2011-06-15 19:55  HQL  阅读(254)  评论(0)    收藏  举报