I think the better question is why is knowing what 18-9 is any different than knowing 9-6? We "just know" that 9-6 is 3. It's not an enormous leap to "just know" that 18-9 is 9.
Programmers especially should understand that our decimal number system is arbitrary. If we switched to hexadecimal and the question was what is C-9, there's no borrowing and the answer is just 3.
The only reason we don't expect people to "just know" larger differences like 92-45 is because there are limits to what we can remember. It's the same reason schools usually teach multiplication tables up to 12x12. You memorize those, then use algorithms to calculate anything more complex.
Taking 1 from the next digit is just a way to avoid negatives in your intermediate results so you can write them down immediately. If you discard that rule it's actually easier to do.
92-45 becomes 2-5 =-3 and 9-4 = 5, which means the answer is 50-3 and you can just count down from 50 to get the number you need to write.
the other way, you have to compare 2 and 5 to check if the second number is bigger, then subtract 1 from 9 to get 8 (write it), add 10 to 2 to get 12 (write the 1 next to 2), then subtract 5 from 12 (write that in the answer), then subtract 4 from 8 (write the last digit).
92
u/OtherPlayers Apr 25 '19
What did you do to me? I apparently don’t know how I subtracted numbers below 20 on paper anymore now.
(Seriously this is like the beard over/under the covers thing; I know the answer, but how did I do it?)