I've been thinking about an alternative method that avoids both of these drawbacks. It can be thought of as a generalization of the difference of two squares method. I don't think I've seen it described in detail anywhere, although it may have similarities with some of the techniques used in so-called Vedic Maths, which I've only recently become familiar with. It works best when the two numbers are reasonably close together.

It's best illustrated with an example, say 17 x 28.

Imagine the two numbers at the ends of a regular linear scale, as on a ruler, and imagine a movable marker at each end. Push the two markers simultaneously towards each other at the same rate until one of them is on a round number. So the left-hand marker moves three units right to 20, and the right-hand marker moves three units left to 25.

Now multiply these two numbers together: 20 x 25 = 500 (double 25 and add a zero).

Now look at the position of either of the markers relative to the end of the scale. It doesn't matter which marker you use, although the one on the round number will probably be easier to calculate with. 20 - 17 = 3, and 28 - 20 = 8, so the marker is 3 units from one end and 8 units from the other.

Now multiply these two numbers together: 3 x 8 = 24.

Finally subtract from the earlier total: 500 - 24 = 476. And that's the answer.

But what if there's no conveniently situated round number between the two original numbers? Then you can pull the markers

*outwards*, away from each other. In this case you need to imagine the number line extending beyond the ends of the original scale, and the final step requires addition rather than subtraction.

Example: 22 x 29. Pull the left-hand marker two units

*left*to 20, and the right-hand marker two units

*right*to 31.

20 x 31 = 620 (by doubling 31 and adding a zero).

The left-hand marker is 2 units from one end (22-20 = 2) and 9 units from the other (29-20 = 9).

2 x 9 = 18.

Add because you pulled outwards: 620 + 18 = 638.

Of course, these examples hinge on the fact that 20 is a reasonably easy number to multiply by mentally, but it works with other multipliers. Try it with 26 x 33:

Push the markers three units inwards, to 29 and 30.

29 x 30 = (30 x 30) - 30 = 900 - 30 = 870

3 x 4 = 12 (33 - 30 = 3, 30 - 26 = 4)

870 - 12 = 858

Or 32 x 39: push outwards to 31 and 40.

31 x 40 = 1240 (double 31 to 62, double again to 124, add a zero)

1 x 8 = 8 (40 - 39 = 1, 40 - 32 = 8)

1240 + 8 = 1248

As with the other technique, there will eventually come a point where it's more trouble than it's worth, but I think it's useful for relatively small numbers.