Нашел еще одну веселую задачку, в этот раз на ЯПе выского уровня.
Попалась тут не очень адекватная таска, может быть, кто-то решит. Требуется написать функцию, которая работает как sign(). То есть три случая:
x < 0 => -1
x == 0 => 0
x > 0 => 1
А теперь про ограничения:
1) Условного оператора нет
2) Битовых операций нет
3) Бул честный, а не сишный (то есть отдельный тип)
4) Приведения типов нет
5) Лишних переменных нет
Для желающих, сразу же привожу решение:
int sign(int x) {
(x < 0 && 0 == (x = -1));
(x > 0 && 0 == (x = +1));
return x;
}