Geometric sum using recursion in python

View Discussion

Show

    Improve Article

    Save Article

  • Read
  • Discuss
  • View Discussion

    Improve Article

    Save Article

    Given an integer N, we need to find the geometric sum of the following series using recursion. 
     

    1 + 1/3 + 1/9 + 1/27 + … + 1/(3^n) 
     

    Examples: 
     

    Input N = 5 
    Output: 1.49794
    
    Input: N = 7
    Output: 1.49977

    Approach:
    In the above-mentioned problem, we are asked to use recursion. We will calculate the last term and call recursion on the remaining n-1 terms each time. The final sum returned is the result.
    Below is the implementation of the above approach: 
     

    C++

    #include

    using namespace std;

    double sum(int n)

    {

        if (n == 0)

            return 1;

        double ans = 1 / (double)pow(3, n) + sum(n - 1);

        return ans;

    }

    int main()

    {

        int n = 5;

        cout << sum(n) << endl;

        return 0;

    }

    Java

    import java.util.*;

    class GFG {

        static double sum(int n)

        {

            if (n == 0)

                return 1;

            double ans = 1 / (double)Math.pow(3, n) + sum(n - 1);

            return ans;

        }

        public static void main(String[] args)

        {

            int n = 5;

            System.out.println(sum(n));

        }

    }

    Python3

    def sum(n):

        if n == 0:

            return 1

        return 1 / pow(3, n) + sum(n-1)

    n = 5;

    print(sum(n));

    C#

    using System;

    class GFG {

        static double sum(int n)

        {

            if (n == 0)

                return 1;

            double ans = 1 / (double)Math.Pow(3, n) + sum(n - 1);

            return ans;

        }

        static public void Main()

        {

            int n = 5;

            Console.WriteLine(sum(n));

        }

    }

    Javascript

    Time Complexity: O(N)
    Auxiliary Space: O(N)