## Subtracting Subtraction, Part 1

Some things are easier than others. The elevator is easier than the stairs. Criticizing others’ ideas is easier than originating one’s own. Addition is easier than subtraction.

Let’s focus on the last of these. Why is subtraction more difficult than addition? Borrowing. When a digit in the subtrahend (the second number) is greater than the corresponding digit in the minuend (the first number), we must borrow 10 from the neighbor to the left, subtract the subtrahend digit from the minuend digit plus 10, and then move on to the next digits. If the left neighbor doesn’t have 10 to give, then we must knock on the doors of the neighbors still further left—until we find one that can lend us 10.

Borrowing is not fundamentally different from the carrying that we do in addition, but it requires more working memory. We immediately carry into the next operation when adding, but with borrowing we must remember that we altered the digit to the left while we process the one to its right.

If we could perform subtraction without borrowing, that’d be really nice! More people might like math. Computer hardware would be simpler. Stairs would be easier to climb.

### Nines Complement

Let’s see if we can manipulate a subtraction problem so that no borrowing is necessary. We observe that we never borrow when the minuend digit is 9—the largest digit, which will never be exceeded by the subtrahend digit.

Suppose we want to find the difference between minuend *a* and subtrahend *b*. Suppose also that both numbers are positive and three digits or less. Let’s try to force some of the subtraction to be a subtraction from 9s:

We have replaced one subtraction for two. That may not seem like progress, but we know that 999 – *b* will require no borrowing. That’s good. But what about the subtraction of 1000? Will that require borrowing? To answer that question, let’s figure out what sort of number *a* + (999 – *b*) + 1 is. Let’s break this up into two cases: when *a* is at least as big as *b* and otherwise.

First, let’s establish the lower bound when *a* is as at least as big as *b*:

It’s at least 1000. How about the upper bound when *a* is at least as big as *b*?

In this case, the upper bound less than 2000. A number in [1000, 2000) has a 1 in its thousands place and will therefore incur no borrowing when 1000 is subtracted from it.

What about when *a* is less than *b*? We can make a bolder statement about the upper bound in such a case:

A number less than a 1000 will have a 0 in its thousands place. Subtracting 1000 will incur a borrow. Bummer. There’s no point in even looking at the lower bound.

We call the expression 999 – *b* the *nines complement* of *b*. Reframing subtraction using the nines complement is a nice idea, but it only avoids borrowing if *a* is at least as big as *b*.

Hope is not lost. If we could just get rid of that subtraction of 1000, we would have no borrowing. Stay tuned until next time, when we do exactly that!