# Sum of the Tan(x) expansion upto N terms

• Difficulty Level : Basic
• Last Updated : 04 Jun, 2022

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 ``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

 ``

Output:

`1.551373344`

Time Complexity: O(n2)

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

My Personal Notes arrow_drop_up