Open In App

# Product of 2 Numbers using Recursion

Given two numbers x and y find the product using recursion.

Examples :

```Input : x = 5, y = 2
Output : 10

Input : x = 100, y = 5
Output : 500```

Method
1) If x is less than y, swap the two variables value
2) Recursively find y times the sum of x
3) If any of them become zero, return 0

## C++

 `// C++ Program to find Product ``// of 2 Numbers using Recursion``#include ``using` `namespace` `std;`` ` `// recursive function to calculate``// multiplication of two numbers``int` `product(``int` `x, ``int` `y)``{``    ``// if x is less than ``    ``// y swap the numbers``    ``if` `(x < y)``        ``return` `product(y, x);`` ` `    ``// iteratively calculate ``    ``// y times sum of x``    ``else` `if` `(y != 0)``        ``return` `(x + product(x, y - 1));`` ` `    ``// if any of the two numbers is ``    ``// zero return zero``    ``else``        ``return` `0;``}`` ` `// Driver Code``int` `main()``{``    ``int` `x = 5, y = 2;``    ``cout << product(x, y);``    ``return` `0;``}`

## Java

 `// Java Program to find Product``// of 2 Numbers using Recursion``import` `java.io.*;``import` `java.util.*;`` ` `class` `GFG ``{``     ` `    ``// recursive function to calculate ``    ``// multiplication of two numbers``    ``static` `int` `product(``int` `x, ``int` `y)``    ``{``        ``// if x is less than ``        ``// y swap the numbers``        ``if` `(x < y)``            ``return` `product(y, x);``     ` `        ``// iteratively calculate ``        ``// y times sum of x``        ``else` `if` `(y != ``0``)``            ``return` `(x + product(x, y - ``1``));``     ` `        ``// if any of the two numbers is ``        ``// zero return zero``        ``else``            ``return` `0``;``    ``}``     ` `    ``// Driver Code``    ``public` `static` `void` `main (String[] args)``    ``{``        ``int` `x = ``5``, y = ``2``;``        ``System.out.println(product(x, y)); ``    ``}``}`` ` `// This code is contributed by Gitanjali.`

## Python3

 `# Python3 to find Product of``# 2 Numbers using Recursion`` ` `# recursive function to calculate``# multiplication of two numbers ``def` `product( x , y ):``    ``# if x is less than y swap``    ``# the numbers``    ``if` `x < y:``        ``return` `product(y, x)``     ` `    ``# iteratively calculate y``    ``# times sum of x``    ``elif` `y !``=` `0``:``        ``return` `(x ``+` `product(x, y ``-` `1``))``     ` `    ``# if any of the two numbers is``    ``# zero return zero``    ``else``:``        ``return` `0`` ` `# Driver code``x ``=` `5``y ``=` `2``print``( product(x, y))`` ` `# This code is contributed``# by Abhishek Sharma44.`

## C#

 `// C# Program to find Product``// of 2 Numbers using Recursion``using` `System;`` ` `class` `GFG ``{``     ` `    ``// recursive function to calculate ``    ``// multiplication of two numbers``    ``static` `int` `product(``int` `x, ``int` `y)``    ``{``        ``// if x is less than ``        ``// y swap the numbers``        ``if` `(x < y)``            ``return` `product(y, x);``     ` `        ``// iteratively calculate ``        ``// y times sum of x``        ``else` `if` `(y != 0)``            ``return` `(x + product(x, y - 1));``     ` `        ``// if any of the two numbers is ``        ``// zero return zero``        ``else``            ``return` `0;``    ``}``     ` `    ``// Driver code``    ``public` `static` `void` `Main ()``    ``{``        ``int` `x = 5, y = 2;``        ``Console.WriteLine(product(x, y)); ``    ``}``}`` ` `// This code is contributed by vt_m.`

## PHP

 ``

## Javascript

 ``

Output

`10`

Time Complexity: O(min(x,y))
Auxiliary Space: O(min(x,y)), The extra space is used in the recursive call stack.