Consider the Peasants' Algorithm for multiplication of two positive integers. It works in the following manner: ● Write the two numbers in two columns. Keep updating according to the following procedure until the number in the first (i.e., left) column becomes 1. ● Halve the number in the first column (integer division), double the number in the second column. ● In the end, sum up all the numbers in the second column, for which, the corresponding number in the first column is odd. Example of multiplication using Peasants’ algorithm: 13 x 8: 13 8 ← 6 16 3 32 ← 1 64 ← Answer: 64 + 32 + 8 = 104 Write a c++ program function to calculate multiplication using the Peasants’ algorithm. Can you try the recursive function for the same?
Consider the Peasants'
manner:
● Write the two numbers in two columns. Keep updating according to the following procedure until the
number in the first (i.e., left) column becomes 1.
● Halve the number in the first column (integer division), double the number in the second column.
● In the end, sum up all the numbers in the second column, for which, the corresponding number in the
first column is odd.
Example of multiplication using Peasants’ algorithm: 13 x 8:
13 8 ←
6 16
3 32 ←
1 64 ←
Answer: 64 + 32 + 8 = 104
Write a c++ program function to calculate multiplication using the Peasants’ algorithm. Can you try the recursive
function for the same?
Step by step
Solved in 3 steps with 2 images