解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;
}
在别人博客上看到了这道题目,花了几个小时解的。然后再看看别人的,开始以为解的跟别人不一样。仔细看看别人的代码。其实一样,代码还没人精简。唉,记录下。

浙公网安备 33010602011771号