Awesome, this is the first recursive answer I've seen!  I suppose you could even just return `10 * upperBound(guess / 10)`!