1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
int f(int x) { if (x == 0 || x == INT_MIN) return x; else { if (x == INT_MAX || x == -INT_MAX) { return -INT_MAX; } if (x > 0) { return x & 1 ? x + 1 : 1 - x; } else { return x & 1 ? x - 1 : -1 - x; } } }