Solving f(n)= (1) + (2*3) + (4*5*6) … n using Recursion
Example :
Input : 2
Output: 7
Series: (1) + (2*3)
Input : 4
Output: 5167
Series: (1) + (2*3) + (4*5*6) + (7*8*9*10)
C++
#include<bits/stdc++.h>
using namespace std;
int seriesSum( int calculated, int current,
int N)
{
int i, cur = 1;
if (current == N + 1)
return 0;
for (i = calculated; i < calculated +
current; i++)
cur *= i;
return cur + seriesSum(i, current + 1, N);
}
int main()
{
int N = 5;
cout<<seriesSum(1, 1, N)<<endl;
return 0;
}
|
C
#include <stdio.h>
int seriesSum( int calculated, int current,
int N)
{
int i, cur = 1;
if (current == N + 1)
return 0;
for (i = calculated; i < calculated +
current; i++)
cur *= i;
return cur + seriesSum(i, current + 1, N);
}
int main()
{
int N = 5;
printf ( "%d\n" , seriesSum(1, 1, N));
return 0;
}
|
Java
class GFG
{
static int seriesSum( int calculated,
int current,
int N)
{
int i, cur = 1 ;
if (current == N + 1 )
return 0 ;
for (i = calculated; i < calculated +
current; i++)
cur *= i;
return cur + seriesSum(i, current + 1 , N);
}
public static void main(String[] args)
{
int N = 5 ;
System.out.println(seriesSum( 1 , 1 , N));
}
}
|
Python3
def seriesSum(calculated, current, N):
i = calculated;
cur = 1 ;
if (current = = N + 1 ):
return 0 ;
while (i < calculated + current):
cur * = i;
i + = 1 ;
return cur + seriesSum(i, current + 1 , N);
N = 5 ;
print (seriesSum( 1 , 1 , N));
|
C#
using System;
class GFG
{
static int seriesSum( int calculated,
int current,
int N)
{
int i, cur = 1;
if (current == N + 1)
return 0;
for (i = calculated; i < calculated +
current; i++)
cur *= i;
return cur + seriesSum(i, current + 1, N);
}
public static void Main()
{
int N = 5;
Console.WriteLine(seriesSum(1, 1, N));
}
}
|
PHP
<?php
function seriesSum( $calculated , $current , $N )
{
$i ; $cur = 1;
if ( $current == $N + 1)
return 0;
for ( $i = $calculated ; $i < $calculated +
$current ; $i ++)
$cur *= $i ;
return $cur + seriesSum( $i , $current + 1, $N );
}
$N = 5;
echo (seriesSum(1, 1, $N ));
?>
|
Javascript
<script>
function seriesSum(calculated,
current, N)
{
let i, cur = 1;
if (current == N + 1)
return 0;
for (i = calculated; i < calculated +
current; i++)
cur *= i;
return cur + seriesSum(i, current + 1, N);
}
let N = 5;
document.write(seriesSum(1, 1, N));
</script>
|
Output :
365527
Time Complexity: O(n2) // since inside the loop we are using recursive code, hence the total time taken is quadratic
Auxiliary Space: O(n) //since using recursion we are storing the functions call in the memory stack space
Last Updated :
08 May, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...