Back in its infancy, on its hiring page, PayPal had a couple questions. It said, "if you can solve these, you might be the sort of person we're looking for." I didn't really want to work for them, but the questions interested me, so I solved them. (This was before I hated them for locking me out of my account arbitrarily. Paypal really does suck.)
You are given 12 balls all of which weigh the same except for one which may be heavier or lighter. What is the minimum number of weighings with a simple balance to determine the odd ball?
This one I didn't actually solve on my own. I lived in a house with a bunch of Honors kids at the time and this problem stood the test of being on our whiteboard for discussion for a full two days. Very few problems that anyone brought home managed as well. The answer is three and you will also be able to tell whether the odd ball is heavier or lighter than the others. (If your browser handles SVG's, you can zoom in on this graph.)
Write a computer program to reverse the words in a string without using any local storage.
This one wasn't too hard assuming that by "no local storage" they meant I could use the call stack. The only really hard part was remembering some C. (Since doing it in a language with more complicated string support would have just made it easier.)