Michael Paul Goldenberg writes of a programming exercise in which he had to solve a certain problem without using loops.
Hey, I have no problem with *that* sort of exercise. In general, understanding what can be done with certain tools alone is useful and important. So is understanding the concept they were fishing for in the problem I cited. But there's clean fishing and there's sloppy fishing. (ok, the metaphor's weak)
I see a distinction between your programming example and asking WHY 35 - 19 equals 16 (Given 35 - 20 = 15).
Now if you choose to rephrase it as: Prove: 35 - 19 = 16 USING ONLY: 35 - 20 = 15; 20 - 1 = 19; 15 + 1 = 16; A - (B-1) = (A - B) + 1 for all real numbers A and B; (and I also need a substitution rule to allow me to substitute equivalent expressions for one another in equations as well as some rules on dropping superfluous parentheses) and no other facts about subtraction. Then I'm with you.
Incidentally, isn't there a problem with replacing the names with their base 27 equivalent? Or are you padding the tail of each number with a certain number of 0s (spaces) to make them all the same length? That is I assume "a" went to "1" "b" went to "2" etc. "c" went to 3 ... "z" went to "26" but then while "Jones" would go to 10-15-14-5-19 base 27 ( in base 10: 5620015) and "Smith" would go to 19-13-9-20-8 base 27 (in base 10: 10360367) wouldn't "Wall" only go to 23-1-12-12 base 27 (in base 10: 453774)
and so your sort would put them in the order Jones, Wall, Smith. You could of course, pass through the data once to find the maximum length, then add "0"s to the end of each word to make them all the same length.
Or you could make them into "decimals" base 27 (i.e. taking Jones to 10/27 + 15/27^2 + 14/27^3 + 5/27^4 + 19/27^5) which would work (though you might lose a lot to round off error between Williams and Williamson)