# DEV102's Programming Job Interview Challenge 4

 « Previous article: Next article: » The Need for Common Search Keywords. Blog Home DEV102's Programming Job Interview Challenge 5

The folks at Dev102.com are offering weekly programming challenges, where they offer questions, and let bloggers post about them. I meant to write an answer for last week, but never got around to it. Just as well – my answer would have been wrong. So, let’s move on to this week’s:

How would you implement the following method: Foo(7) == 17 and Foo(17) == 7. Any other input to that method is not defined so you can return anything you want. Just follow those rules:

• Conditional statements (if, switch, …) are not allowed.
• Usage of containers (hash tables, arrays, …) are not allowed.

My first thought was, since we can’t use conditional statements, to use conditional expressions instead:

``````  int foo(int n)
{
return (n==7)  ? 17 : (n==17)  ? 7 : n;
}
``````

But clearly, that is just cheating. (And, besides, it turns out, it’s not the best solution).

My next attempt was to use subtraction to create factors of zero.

``````  int foo(int n)
{
return n + (10 * (n-17) * (n-6)) + (-10 * (n-16) * (n-7))  ;
}
``````

There may be a formula in there that works, but that one doesn’t, and before I found it, I stumble upon the correct solution, which was just sitting there staring me in the face:

``````int foo(int n)
{
return 24 - n;
}
``````

Yep, it’s just that simple.

Tags: