Given two numbers N and M. The task is to find the product of the 2 numbers using recursion.
Note: The numbers can be both positive or negative.
Input : N = 5 , M = 3 Output : 15 Input : N = 5 , M = -3 Output : -15 Input : N = -5 , M = 3 Output : -15 Input : N = -5 , M = -3 Output:15
A recursive solution to the above problem for only positive numbers is already discussed in the previous article. In this post, a recursive solution for finding the product for both positive and negative numbers is discussed.
Below is the step by step approach:
- Check if one or both of the numbers are negative.
- If the number passed in the second parameter is negative swap the parameters and call the function again.
- If both of the parameters are negative call the function again and pass the absolute values of the numbers as parameters.
- If n>m call the function with swapped parameters for less execution time of the function.
- As long as m is not 0 keep on calling the function with subcase n, m-1 and return n + multrecur(n, m-1).
Below is the implementation of the above approach:
5 * 3 = 15 5 * (-3) = -15 (-5) * 3 = -15 (-5) * (-3) = 15
- Product of 2 Numbers using Recursion
- Sum of natural numbers using recursion
- Print numbers 1 to N using Indirect recursion
- Numbers less than N which are product of exactly two distinct prime numbers
- Number of divisors of product of N numbers
- Program for dot product and cross product of two vectors
- Tail Recursion
- Practice Questions for Recursion | Set 7
- Practice Questions for Recursion | Set 5
- Generating subarrays using recursion
- Practice Questions for Recursion | Set 6
- Sort a stack using recursion
- Generating all possible Subsequences using Recursion
- Print 1 to 100 in C++, without loop and recursion
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.