Related Articles

# Recursive program to find the Sum of the series 1 – 1/2 + 1/3 – 1/4 … 1/N

• Last Updated : 23 Apr, 2021

Given a positive integer N, the task is to find the sum of the series 1 – (1/2) + (1/3) – (1/4) +…. (1/N) using recursion.

Examples:

Input: N = 3
Output: 0.8333333333333333
Explanation:
1 – (1/2) + (1/3) = 0.8333333333333333

Input: N = 4
Output: 0.5833333333333333
Explanation:
1- (1/2) + (1/3) – (1/4) = 0.5833333333333333

Approach: The idea is to form a recursive case and base case in order to solve this problem using recursion. Therefore:

• Base Case: The base case for this problem is when we have calculated the sum till the value of N in the denominator. Therefore, we stop the recursion when the counter variable ‘i’ reaches the value N.
• Recursive Case: The recursive case for this problem is to find whether the denominator is an even or odd. This is because, clearly, for every odd number, the preceding sign is a ‘+’ and for every even number, the preceding sign is a ‘-‘. Therefore, we check whether the counter variable is an even or odd number and accordingly add or subtract the value. Then, the function is recursively called for the next value of the value ‘i’.

Below is the implementation of the above approach:

## C++

 `// C++ program to find the value of``// the given series``#include``using` `namespace` `std;` `// Recursive program to find the``// value of the given series``float` `sumOfSeries(``int` `i, ``int` `n, ``float` `s)``{``    ``// Base case``    ``if` `(i > n )``        ``return` `s;`` ` `    ``// Recursive case``    ``else``    ``{`` ` `        ``// If we are currently looking``        ``// at the even number``        ``if` `(i % 2 == 0)``            ``s -= (``float``)1 / i;`` ` `        ``// If we are currently looking``        ``// at the odd number``        ``else``            ``s+= (``float``)1 / i;``        ``return` `sumOfSeries(i + 1, n, s);``    ``}``}` `// Driver code``int` `main()``{``     ` `    ``// cout<

## Java

 `// Java program to find the value of``// the given series``import` `java.util.*;` `class` `GFG{` `// Recursive program to find the``// value of the given series``static` `float` `sumOfSeries(``int` `i, ``int` `n, ``float` `s)``{``    ` `    ``// Base case``    ``if` `(i > n)``        ``return` `s;` `    ``// Recursive case``    ``else``    ``{``        ` `        ``// If we are currently looking``        ``// at the even number``        ``if` `(i % ``2` `== ``0``)``            ``s -= (``float``)``1` `/ i;` `        ``// If we are currently looking``        ``// at the odd number``        ``else``            ``s += (``float``)``1` `/ i;``            ` `        ``return` `sumOfSeries(i + ``1``, n, s);``    ``}``}` `// Driver code``public` `static` `void` `main(String[] args)``{``    ``float` `sum = sumOfSeries(``1``, ``3``, ``0``);``    ` `    ``System.out.printf(``"%f"``, sum);``}``}` `// This code is contributed by Amit Katiyar`

## Python3

 `# Python program to find the value of``# the given series` `# Recursive program to find the``# value of the given series``def` `sumOfSeries(i, n, s) :` `    ``# Base case``    ``if` `i>n :``        ``return` `s` `    ``# Recursive case``    ``else` `:` `        ``# If we are currently looking``        ``# at the even number``        ``if` `i ``%` `2` `=``=` `0` `:``            ``s``-``=` `1` `/` `i` `        ``# If we are currently looking``        ``# at the odd number``        ``else` `:``            ``s``+``=` `1` `/` `i``        ``return` `sumOfSeries(i ``+` `1``, n, s)` `# Driver code``if` `__name__ ``=``=` `"__main__"``:``    ``print``(sumOfSeries(``1``, ``3``, ``0``))`

## C#

 `// C# program to find the value of``// the given series``using` `System;``class` `GFG{` `// Recursive program to find the``// value of the given series``static` `float` `sumOfSeries(``int` `i, ``int` `n, ``float` `s)``{``    ``// Base case``    ``if` `(i > n )``        ``return` `s;` `    ``// Recursive case``    ``else``    ``{` `        ``// If we are currently looking``        ``// at the even number``        ``if` `(i % 2 == 0)``            ``s -= (``float``)1 / i;` `        ``// If we are currently looking``        ``// at the odd number``        ``else``            ``s += (``float``)1 / i;``        ``return` `sumOfSeries(i + 1, n, s);``    ``}``}` `// Driver code``public` `static` `void` `Main()``{``    ``float` `sum = sumOfSeries(1, 3, 0);``    ``Console.Write(sum);``}``}` `// This code is contributed by Code_Mech`

## Javascript

 ``
Output:
`0.8333333333333333`

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

My Personal Notes arrow_drop_up