I don't know about you, but--like many engineers--I can easily be distracted by a logical conundrum. For example, some time ago, a friend interviewed for an applications engineer job. He was given a test to complete, and one question stumped him. At first, this appears to be deceptively simple. We start with a black box with three inputs--A, B and C--and three outputs (see below). The outputs, which we may name !A, !B and !C, are the logical inversions of the inputs.
The idea is that you have a "bucket" of primitive logic gates that you can connect together in any way you like so as to generate the required outputs. The trick is that, although your bucket contains an unlimited number of two-input AND, OR and XOR gates, it contains only two inverting NOT (or INV) gates.
I can't tell you how many hours I've whiled away at this, spending 10 minutes here and 10 minutes there as a new possibility strikes me. Sometimes I think this is a trick question, and the answer is "It can't be done." Other times, I feel as though I'm poised on the verge of a solution based on manipulating the differences between ... but no! Why should I ruin the fun for everyone else?