Skip to content
Related Articles

Related Articles

Save Article
Improve Article
Save Article
Like Article

Sum of the Tan(x) expansion upto N terms

  • Difficulty Level : Basic
  • Last Updated : 14 Apr, 2021

Given two integers N and X. The task is to find the sum of tan(x) series up to N terms.
The series : 
 

x + x3/3 + 2x5/15 + 17x7/315 + 62x9/2835……..

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.

Examples: 
 



Input : N = 6, X = 1 
Output :The value from the expansion is 1.55137626113259
Input : N = 4, X = 2 
Output :The value from the expansion is 1.52063492063426

 

Approach : 
The expansion of tan(x) is shown here. Compute the each term using a simple loops and get the required answer. 
 

C++




// CPP program to find tan(x) expansion
#include <bits/stdc++.h>
using namespace std;
 
// Function to find factorial of a number
int fac(int num)
{
    if (num == 0)
        return 1;
 
    // To store factorial of a number
    int fact = 1;
    for (int i = 1; i <= num; i++)
        fact = fact * i;
 
    // Return the factorial of a number
    return fact;
}
 
// Function to find tan(x) upto n terms
void Tanx_expansion(int terms, int x)
{
    // To store value of the expansion
    double sum = 0;
 
    for (int i = 1; i <= terms; i += 1) {
        // This loops here calculate Bernoulli number
        // which is further used to get the coefficient
        // in the expansion of tan x
        double B = 0;
        int Bn = 2 * i;
        for (int k = 0; k <= Bn; k++) {
            double temp = 0;
            for (int r = 0; r <= k; r++)
                temp = temp + pow(-1, r) * fac(k) * pow(r, Bn)
                                     / (fac(r) * fac(k - r));
 
            B = B + temp / ((double)(k + 1));
        }
        sum = sum + pow(-4, i) * (1 - pow(4, i)) * B *
                               pow(x, 2 * i - 1) / fac(2 * i);
    }
 
    // Print the value of expansion
    cout << setprecision(10) << sum;
}
 
// Driver code
int main()
{
    int n = 6, x = 1;
 
    // Function call
    Tanx_expansion(n, x);
 
    return 0;
}

Java




// Java program to find tan(x) expansion
class GFG
{
 
// Function to find factorial of a number
static int fac(int num)
{
    if (num == 0)
        return 1;
 
    // To store factorial of a number
    int fact = 1;
    for (int i = 1; i <= num; i++)
        fact = fact * i;
 
    // Return the factorial of a number
    return fact;
}
 
// Function to find tan(x) upto n terms
static void Tanx_expansion(int terms, int x)
{
    // To store value of the expansion
    double sum = 0;
 
    for (int i = 1; i <= terms; i += 1)
    {
         
        // This loops here calculate Bernoulli number
        // which is further used to get the coefficient
        // in the expansion of tan x
        double B = 0;
        int Bn = 2 * i;
        for (int k = 0; k <= Bn; k++)
        {
            double temp = 0;
            for (int r = 0; r <= k; r++)
                temp = temp + Math.pow(-1, r) * fac(k) *
                              Math.pow(r, Bn) / (fac(r) *
                                                 fac(k - r));
 
            B = B + temp / ((double)(k + 1));
        }
        sum = sum + Math.pow(-4, i) *
               (1 - Math.pow(4, i)) * B *
                    Math.pow(x, 2 * i - 1) / fac(2 * i);
    }
 
    // Print the value of expansion
    System.out.printf("%.9f", sum);
}
 
// Driver code
public static void main(String[] args)
{
    int n = 6, x = 1;
 
    // Function call
    Tanx_expansion(n, x);
}
}
 
// This code is contributed by Rajput-Ji

Python3




# Python3 program to find tan(x) expansion
 
# Function to find factorial of a number
def fac(num):
    if (num == 0):
        return 1;
 
    # To store factorial of a number
    fact = 1;
    for i in range(1, num + 1):
        fact = fact * i;
 
    # Return the factorial of a number
    return fact;
 
# Function to find tan(x) upto n terms
def Tanx_expansion(terms, x):
 
    # To store value of the expansion
    sum = 0;
 
    for i in range(1, terms + 1):
 
        # This loops here calculate Bernoulli number
        # which is further used to get the coefficient
        # in the expansion of tan x
        B = 0;
        Bn = 2 * i;
        for k in range(Bn + 1):
            temp = 0;
            for r in range(0, k + 1):
                temp = temp + pow(-1, r) * fac(k) \
                    * pow(r, Bn) / (fac(r) * fac(k - r));
 
            B = B + temp / ((k + 1));
 
        sum = sum + pow(-4, i) * (1 - pow(4, i)) \
            * B * pow(x, 2 * i - 1) / fac(2 * i);
 
    # Print the value of expansion
    print("%.9f" %(sum));
 
# Driver code
if __name__ == '__main__':
    n, x = 6, 1;
 
    # Function call
    Tanx_expansion(n, x);
 
# This code is contributed by Rajput-Ji

C#




// C# program to find tan(x) expansion
using System;
     
class GFG
{
 
// Function to find factorial of a number
static int fac(int num)
{
    if (num == 0)
        return 1;
 
    // To store factorial of a number
    int fact = 1;
    for (int i = 1; i <= num; i++)
        fact = fact * i;
 
    // Return the factorial of a number
    return fact;
}
 
// Function to find tan(x) upto n terms
static void Tanx_expansion(int terms, int x)
{
    // To store value of the expansion
    double sum = 0;
 
    for (int i = 1; i <= terms; i += 1)
    {
         
        // This loop here calculates
        // Bernoulli number which is
        // further used to get the coefficient
        // in the expansion of tan x
        double B = 0;
        int Bn = 2 * i;
        for (int k = 0; k <= Bn; k++)
        {
            double temp = 0;
            for (int r = 0; r <= k; r++)
                temp = temp + Math.Pow(-1, r) * fac(k) *
                              Math.Pow(r, Bn) / (fac(r) *
                                                 fac(k - r));
 
            B = B + temp / ((double)(k + 1));
        }
        sum = sum + Math.Pow(-4, i) *
               (1 - Math.Pow(4, i)) * B *
                    Math.Pow(x, 2 * i - 1) / fac(2 * i);
    }
 
    // Print the value of expansion
    Console.Write("{0:F9}", sum);
}
 
// Driver code
public static void Main(String[] args)
{
    int n = 6, x = 1;
 
    // Function call
    Tanx_expansion(n, x);
}
}
 
// This code is contributed by 29AjayKumar

Javascript




<script>
 
// JavaScript program to find tan(x) expansion
 
// Function to find factorial of a number
function fac(num)
{
    if (num == 0)
        return 1;
 
    // To store factorial of a number
    let fact = 1;
    for (let i = 1; i <= num; i++)
        fact = fact * i;
 
    // Return the factorial of a number
    return fact;
}
 
// Function to find tan(x) upto n terms
function Tanx_expansion(terms, x)
{
    // To store value of the expansion
    let sum = 0;
 
    for (let i = 1; i <= terms; i += 1) {
        // This loops here calculate Bernoulli number
        // which is further used to get the coefficient
        // in the expansion of tan x
        let B = 0;
        let Bn = 2 * i;
        for (let k = 0; k <= Bn; k++) {
            let temp = 0;
            for (let r = 0; r <= k; r++)
                temp = temp + Math.pow(-1, r) * fac(k) * Math.pow(r, Bn)
                                    / (fac(r) * fac(k - r));
 
            B = B + temp / (k + 1);
        }
        sum =sum + Math.pow(-4, i) * (1 - Math.pow(4, i)) * B *
                            Math.pow(x, 2 * i - 1) / fac(2 * i);
    }
 
    // Print the value of expansion
    document.write(sum.toFixed(10));
}
 
// Driver code
 
    let n = 6, x = 1;
 
    // Function call
    Tanx_expansion(n, x);
 
// This code is contributed by Surbhi Tyagi.
 
</script>
Output: 
1.551373344

 




My Personal Notes arrow_drop_up
Recommended Articles
Page :