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++
#include <bits/stdc++.h>
using namespace std;
int product( int x, int y)
{
if (x < y)
return product(y, x);
else if (y != 0)
return (x + product(x, y - 1));
else
return 0;
}
int main()
{
int x = 5, y = 2;
cout << product(x, y);
return 0;
}
|
Java
import java.io.*;
import java.util.*;
class GFG
{
static int product( int x, int y)
{
if (x < y)
return product(y, x);
else if (y != 0 )
return (x + product(x, y - 1 ));
else
return 0 ;
}
public static void main (String[] args)
{
int x = 5 , y = 2 ;
System.out.println(product(x, y));
}
}
|
Python3
def product( x , y ):
if x < y:
return product(y, x)
elif y ! = 0 :
return (x + product(x, y - 1 ))
else :
return 0
x = 5
y = 2
print ( product(x, y))
|
C#
using System;
class GFG
{
static int product( int x, int y)
{
if (x < y)
return product(y, x);
else if (y != 0)
return (x + product(x, y - 1));
else
return 0;
}
public static void Main ()
{
int x = 5, y = 2;
Console.WriteLine(product(x, y));
}
}
|
PHP
<?php
function product( $x , $y )
{
if ( $x < $y )
return product( $y , $x );
else if ( $y != 0)
return ( $x + product( $x , $y - 1));
else
return 0;
}
$x = 5; $y = 2;
echo (product( $x , $y ));
?>
|
Javascript
<script>
function product(x, y)
{
if (x < y)
return product(y, x);
else if (y != 0)
return (x + product(x, y - 1));
else
return 0;
}
let x = 5;
let y = 2;
document.write(product(x, y));
</script>
|
Time Complexity: O(min(x,y))
Auxiliary Space: O(min(x,y)), The extra space is used in the recursive call stack.