Sum of the Tan(x) expansion upto N terms - GeeksforGeeks

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........
Examples:  
Input : N = 6, X = 1 Output :The value from the expansion is 1.55137626113259Input : 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++
Java
Python3
C#
Javascript
// CPP program to find tan(x) expansion#include <bits/stdc++.h>using namespace std; // Function to find factorial of a numberint 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 termsvoid 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 codeint main(){    int n = 6, x = 1;     // Function call    Tanx_expansion(n, x);     return 0;}
// Java program to find tan(x) expansionclass GFG{ // Function to find factorial of a numberstatic 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 termsstatic 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 codepublic static void main(String[] args){    int n = 6, x = 1;     // Function call    Tanx_expansion(n, x);}} // This code is contributed by Rajput-Ji
# Python3 program to find tan(x) expansion # Function to find factorial of a numberdef 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 termsdef 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 codeif __name__ == '__main__':    n, x = 6, 1;     # Function call    Tanx_expansion(n, x); # This code is contributed by Rajput-Ji
// C# program to find tan(x) expansionusing System;     class GFG{ // Function to find factorial of a numberstatic 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 termsstatic 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 codepublic static void Main(String[] args){    int n = 6, x = 1;     // Function call    Tanx_expansion(n, x);}} // This code is contributed by 29AjayKumar
<script> // JavaScript program to find tan(x) expansion // Function to find factorial of a numberfunction 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 termsfunction 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>
1.551373344
 
Rajput-Ji
29AjayKumar
surbhityagi15
series-sum
Mathematical
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Program to print prime numbers from 1 to N.
Modular multiplicative inverse
Fizz Buzz Implementation
Singular Value Decomposition (SVD)
Check if a number is Palindrome
Segment Tree | Set 1 (Sum of given range)
How to check if a given point lies inside or outside a polygon?
Program to multiply two matrices
Count ways to reach the n'th stair
Merge two sorted arrays with O(1) extra space