Open In App

Sum of the Tan(x) expansion upto N terms

Last Updated : 04 Jun, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

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


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

 

Time Complexity: O(n2)

Auxiliary Space: O(1), since no extra space has been taken.



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads