Skip to content
Related Articles

Related Articles

Program to find sum of 1 + x/2! + x^2/3! +…+x^n/(n+1)!
  • Difficulty Level : Basic
  • Last Updated : 20 Apr, 2021

Given a number x and n, the task is to find the sum of the below series of x till n terms: 
 

1+\frac{x}{2!}+\frac{x^{2}}{3!}+..+\frac{x^{n}}{(n+1)!}

Examples: 
 

Input: x = 5, n = 2
Output: 7.67
Explanation:
    Sum of first two termed
    1+\frac{5}{2!}+\frac{5^{2}}{3!} = 7.67
Input: x = 5, n = 4
Output: 18.08
Explanation:
1+\frac{5}{2!}+\frac{5^{2}}{3!}+\frac{5^{3}}{4!}+\frac{5^{4}}{5!} = 18.08

 

Approach: Iterate the loop till the nth term, compute the formula in each iteration i.e. 
 



nth term of the series = \frac{x^{i}}{(i+1)!}

Below is the implementation of the above approach: 
 

C++




// C++ Program to compute sum of
// 1 + x/2! + x^2/3! +...+x^n/(n+1)!
 
#include <iostream>
#include <math.h>
using namespace std;
 
// Method to find the factorial of a number
int fact(int n)
{
    if (n == 1)
        return 1;
 
    return n * fact(n - 1);
}
 
// Method to compute the sum
double sum(int x, int n)
{
    double i, total = 1.0;
 
    // Iterate the loop till n
    // and compute the formula
    for (i = 1; i <= n; i++) {
        total = total + (pow(x, i) / fact(i + 1));
    }
 
    return total;
}
 
// Driver code
int main()
{
 
    // Get x and n
    int x = 5, n = 4;
 
    // Print output
    cout << "Sum is: " << sum(x, n);
 
    return 0;
}

Java




// Java Program to compute sum of
// 1 + x/2! + x^2/3! +...+x^n/(n+1)!
 
public class SumOfSeries {
 
    // Method to find factorial of a number
    static int fact(int n)
    {
        if (n == 1)
            return 1;
 
        return n * fact(n - 1);
    }
 
    // Method to compute the sum
    static double sum(int x, int n)
    {
        double total = 1.0;
 
        // Iterate the loop till n
        // and compute the formula
        for (int i = 1; i <= n; i++) {
            total = total + (Math.pow(x, i) / fact(i + 1));
        }
 
        return total;
    }
 
    // Driver Code
    public static void main(String[] args)
    {
 
        // Get x and n
        int x = 5, n = 4;
 
        // Find and print the sum
        System.out.print("Sum is: " + sum(x, n));
    }
}

Python3




# Python3 Program to compute sum of
# 1 + x / 2 ! + x ^ 2 / 3 ! +...+x ^ n/(n + 1)!
 
# Method to find the factorial of a number
def fact(n):
    if n == 1:
        return 1
    else:
        return n * fact(n - 1)
 
# Method to compute the sum
def sum(x, n):
    total = 1.0
 
    # Iterate the loop till n
    # and compute the formula
    for i in range (1, n + 1, 1):
        total = total + (pow(x, i) / fact(i + 1))
 
    return total
 
# Driver code
if __name__== '__main__':
     
    # Get x and n
    x = 5
    n = 4
 
    # Print output
    print ("Sum is: {0:.4f}".format(sum(x, n)))
     
# This code is contributed by
# SURENDRA_GANGWAR

C#




// C# Program to compute sum of
// 1 + x/2! + x^2/3! +...+x^n/(n+1)!
using System;
 
class SumOfSeries {
 
    // Method to find factorial of a number
    static int fact(int n)
    {
        if (n == 1)
            return 1;
 
        return n * fact(n - 1);
    }
 
    // Method to compute the sum
    static double sum(int x, int n)
    {
        double total = 1.0;
 
        // Iterate the loop till n
        // and compute the formula
        for (int i = 1; i <= n; i++) {
            total = total + (Math.Pow(x, i) / fact(i + 1));
        }
 
        return total;
    }
 
    // Driver Code
    public static void Main()
    {
 
        // Get x and n
        int x = 5, n = 4;
 
        // Find and print the sum
        Console.WriteLine("Sum is: " + sum(x, n));
    }
}
 
// This code is contributed
// by anuj_67..

PHP




<?php
// PHP Program to compute sum of
// 1 + x/2! + x^2/3! +...+x^n/(n+1)!
 
// Function to find the factorial
// of a number
function fact($n)
{
    if ($n == 1)
        return 1;
 
    return $n * fact($n - 1);
}
 
// Function to compute the sum
function sum($x, $n)
{
    $total = 1.0;
 
    // Iterate the loop till n
    // and compute the formula
    for ($i = 1; $i <= $n; $i++)
    {
        $total = $total + (pow($x, $i) /
                          fact($i + 1));
    }
 
    return $total;
}
 
// Driver code
 
// Get x and n
$x = 5;
$n = 4;
 
// Print output
echo "Sum is: ", sum($x, $n);
 
// This code is contributed by ANKITRAI1
?>

Javascript




<script>
// java scritpt  Program to compute sum of
// 1 + x/2! + x^2/3! +...+x^n/(n+1)!
 
// Function to find the factorial
// of a number
function fact(n)
{
    if (n == 1)
        return 1;
 
    return n * fact(n - 1);
}
 
// Function to compute the sum
function sum(x, n)
{
    let total = 1.0;
 
    // Iterate the loop till n
    // and compute the formula
    for (let i = 1; i <= n; i++)
    {
        total = total + (Math.pow(x, i) /
                        fact(i + 1));
    }
 
    return total.toFixed(4);
}
 
// Driver code
 
// Get x and n
let x = 5;
let n = 4;
 
// Print output
document.write( "Sum is: "+ sum(x, n));
 
// This code is contributed by sravan kumar Gottumukkala
</script>
Output: 
Sum is: 18.0833

 

Efficient approach: Time complexity for above algorithm is O(n^{2}  ) because for each sum iteration factorial is being calculated which is O(n). It can be observed that i^{th}  term of the series can be written as S_i = (\frac{x}{i+1}) \cdot S_{i-1}  , where S_0 = 1  . Now we can iterate over i  to calculate the sum.
Below is the implementation of the above approach:
 

C++




// C++ implementation of the approach
#include <iostream>
using namespace std;
 
// Function to compute the series sum
double sum(int x, int n)
{
    double total = 1.0;
 
    // To store the value of S[i-1]
    double previous = 1.0;
 
    // Iterate over n to store sum in total
    for (int i = 1; i <= n; i++)
    {
 
        // Update previous with S[i]
        previous = (previous * x) / (i + 1);
        total = total + previous;
    }
    return total;
}
 
// Driver code
int main()
{
    // Get x and n
    int x = 5, n = 4;
     
    // Find and print the sum
    cout << "Sum is: " << sum(x, n);
 
    return 0;
}
 
// This code is contributed by jit_t

Java




// Java implementation of the approach
 
public class GFG {
 
    // Function to compute the series sum
    static double sum(int x, int n)
    {
 
        double total = 1.0;
 
        // To store the value of S[i-1]
        double previous = 1.0;
 
        // Iterate over n to store sum in total
        for (int i = 1; i <= n; i++) {
 
            // Update previous with S[i]
            previous = (previous * x) / (i + 1);
            total = total + previous;
        }
 
        return total;
    }
 
    // Driver code
    public static void main(String[] args)
    {
 
        // Get x and n
        int x = 5, n = 4;
 
        // Find and print the sum
        System.out.print("Sum is: " + sum(x, n));
    }
}

Python3




# Python implementation of the approach
 
# Function to compute the series sum
def sum(x, n):
    total = 1.0;
 
    # To store the value of S[i-1]
    previous = 1.0;
 
    # Iterate over n to store sum in total
    for i in range(1, n + 1):
         
        # Update previous with S[i]
        previous = (previous * x) / (i + 1);
        total = total + previous;
 
    return total;
 
# Driver code
if __name__ == '__main__':
     
    # Get x and n
    x = 5;
    n = 4;
 
    # Find and prthe sum
    print("Sum is: ", sum(x, n));
 
# This code is contributed by 29AjayKumar

C#




// C# implementation of the approach
using System;
 
class GFG
{
 
    // Function to compute the series sum
    public double sum(int x, int n)
    {
        double total = 1.0;
 
        // To store the value of S[i-1]
        double previous = 1.0;
 
        // Iterate over n to store sum in total
        for (int i = 1; i <= n; i++)
        {
 
            // Update previous with S[i]
            previous = ((previous * x) / (i + 1));
            total = total + previous;
        }
 
        return total;
    }
}
 
// Driver code
class geek
{
    public static void Main()
    {
        GFG g = new GFG();
 
        // Get x and n
        int x = 5, n = 4;
 
        // Find and print the sum
        Console.WriteLine("Sum is: " + g.sum(x, n));
    }
}
 
// This code is contributed by SoM15242
Output: 
Sum is: 18.083333333333336

 

Time Complexity: O(n)
 

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :