February 27th, 2008

lenin

Программистская задачка

Постом Аввы навеяло.

Известна задача для интервью: написать int f(int x), которая для x==a возвращает b, а для x==b возвращает a. Один из вариантов ответа при данной спецификации: int f(int x) { return a+b-x; }

Напишите целое арифметико-логическое выражение (не использующее тернарного оператора и сравнений) с переменной х, которое для данных 32-битных целых a, b, c при x==a принимает значение b, при x==b - значение c, при x==c - значение a, в остальных случаях результат произволен. Для каких a, b, c решение существует?