Skip to content
Related Articles

Related Articles

Sum of the Tan(x) expansion upto N terms
  • Difficulty Level : Basic
  • Last Updated : 13 Feb, 2020

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……..

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


Output:

1.551373344

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.

My Personal Notes arrow_drop_up
Recommended Articles
Page :