Ethiopian Multiplication

Difficulty: ★ ★ ☆ ☆

I remember memorizing the “times tables,” which is how most American kids learn to multiply. Committing single digit multiplication values to memory helps perform multiplication and division problems, but it’s not the only way to calculate the result.

For example, Ethiopian Multiplication involves doubling, halving, and adding values to multiply. As an example, consider the calculation 18 × 44.

For Ethiopian Multiplication you create a column below each value. The first column you halve the numbers. The second column you double them:

18   44
 9   88
 4  176
 2  352
 1  704

Eighteen is even, so it divides evenly. When the value is odd, round it down to the next even number and then cut in half: 9 rounds down to 8, so the next value is 4, as shown above.

The second step is to remove values from the second column where the value in the first column is even:

18   --
 9   88
 4  ---
 2  ---
 1  704

The final step is to tally the values in the second column: 88 + 704 = 792, which is the result of 18 × 44.

Your task for this month’s Exercise is to code Ethiopian Multiplication in C: Prompt the user for two integer values. Output the result using traditional math (the * operator) and then use the techniques for Ethiopian Multiplication to calculate the result. Output the total.

Here is a sample run from my solution:

First value: 18
Second value: 44
Traditional: 18 * 44 = 792
  Ethiopian: 18 * 44 = 792

Please try this Exercise on your own before you peek at my solution.

Leave a Reply