Реализация sign()

task

Нашел еще одну веселую задачку, в этот раз на ЯПе выского уровня.

Попалась тут не очень адекватная таска, может быть, кто-то решит. Требуется написать функцию, которая работает как 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;
}

Previous Post Next Post