Related Articles
Program to find the value of tan(nΘ)
• Last Updated : 23 Aug, 2020

Given a value of tan(Θ) and a variable n <=15. The task is to find the value of tan(nΘ) using property of trignometric functions.

Examples:

Input: tan(Θ) = 0.3, n = 10
Output: -2.15283

Input: tan(Θ) = 0.3, n = 5
Output: 0.37293


## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

This problem can be solved using De moivre’s theoremand Binomial theorem

Below is the implementation of above approach:

## C++

 // C++ program to find the value // of cos(n-theta)   #include #define ll long long int#define MAX 16using namespace std;ll nCr[MAX][MAX] = { 0 };  // This function use to calculate the// binomial cofficient upto 15void binomial(){      // use simple DP to find cofficient    for (int i = 0; i < MAX; i++) {        for (int j = 0; j <= i; j++) {            if (j == 0 || j == i)                nCr[i][j] = 1;            else                nCr[i][j] = nCr[i - 1][j] + nCr[i - 1][j - 1];        }    }}  // Function to find the value ofdouble findTanNTheta(double tanTheta, ll n){    // store required answer    double ans = 0, numerator = 0, denominator = 0;      // use to toggle sign in sequence.    ll toggle = 1;      // calculate numerator    for (int i = 1; i <= n; i += 2) {        numerator = numerator + nCr[n][i] * pow(tanTheta, i) * toggle;        toggle = toggle * -1;    }      // calculate denominator    denominator = 1;    toggle = -1;      for (int i = 2; i <= n; i += 2) {        numerator = numerator + nCr[n][i] * pow(tanTheta, i) * toggle;        toggle = toggle * -1;    }      ans = numerator / denominator;      return ans;}  // Driver code.int main(){    binomial();    double tanTheta = 0.3;      ll n = 10;      cout << findTanNTheta(tanTheta, n) << endl;    return 0;}

## Java

 // Java program to find the value // of cos(n-theta) public class GFG {          private static final int MAX = 16 ;    static long nCr[][] = new long [MAX][MAX] ;      // This function use to calculate the     // binomial coefficient upto 15     static void binomial()     {           // use simple DP to find cofficient         for (int i = 0; i < MAX; i++) {             for (int j = 0; j <= i; j++) {                 if (j == 0 || j == i)                     nCr[i][j] = 1;                 else                    nCr[i][j] = nCr[i - 1][j] + nCr[i - 1][j - 1];             }         }     }       // Function to find the value of     static double findTanNTheta(double tanTheta, int n)     {         // store required answer         double ans = 0, numerator = 0, denominator = 0;               // use to toggle sign in sequence.         long toggle = 1;               // calculate numerator         for (int i = 1; i <= n; i += 2) {             numerator = numerator + nCr[n][i] * Math.pow(tanTheta, i) * toggle;             toggle = toggle * -1;         }               // calculate denominator         denominator = 1;         toggle = -1;               for (int i = 2; i <= n; i += 2) {             numerator = numerator + nCr[n][i] * Math.pow(tanTheta, i) * toggle;             toggle = toggle * -1;         }               ans = numerator / denominator;               return ans;     }      // Driver code    public static void main(String args[])    {        binomial();         double tanTheta = 0.3;         int n = 10;         System.out.println(findTanNTheta(tanTheta, n));    }// This code is contributed by ANKITRAI1 }

## Python3

 # Python3 program to find the value # of cos(n-theta)   import math MAX=16nCr=[[0 for i in range(MAX)] for i in range(MAX)]   # Function to calculate the binomial # cofficient upto 15 def binomial():           # use simple DP to find cofficient     for i in range(MAX):         for j in range(0,i+1):             if j == 0 or j == i:                 nCr[i][j] = 1            else:                 nCr[i][j] = nCr[i - 1][j] + nCr[i - 1][j - 1]   # Function to find the value of cos(n-theta) def findTanNTheta(tanTheta,n):           # store required answer    numerator=0    denominator=1          # to store required answer     ans = 0          # use to toggle sign in sequence.     toggle = 1      # calculate numerator    for i in range(1,n+1,2):         numerator = (numerator + nCr[n][i]*                    (tanTheta**(i)) * toggle)         toggle = toggle * -1    # calculate denominator     toggle=-1    for i in range(2,n+1,2):         numerator = (numerator + nCr[n][i]*                    (tanTheta**i) * toggle)         toggle = toggle * -1    ans=numerator/denominator    return ans        # Driver code if __name__=='__main__':     binomial()     tanTheta = 0.3    n = 10    print(findTanNTheta(tanTheta, n))       # this code is contributed by sahilshelangia

## C#

 // C# program to find the value // of cos(n-theta)   using System;public class GFG {           private static int MAX = 16 ;    static long[,] nCr = new long [MAX,MAX] ;       // This function use to calculate the     // binomial coefficient upto 15     static void binomial()     {            // use simple DP to find cofficient         for (int i = 0; i < MAX; i++) {             for (int j = 0; j <= i; j++) {                 if (j == 0 || j == i)                     nCr[i,j] = 1;                 else                    nCr[i,j] = nCr[i - 1,j] + nCr[i - 1,j - 1];             }         }     }        // Function to find the value of     static double findTanNTheta(double tanTheta, int n)     {         // store required answer         double ans = 0, numerator = 0, denominator = 0;                // use to toggle sign in sequence.         long toggle = 1;                // calculate numerator         for (int i = 1; i <= n; i += 2) {             numerator = numerator + nCr[n,i] * Math.Pow(tanTheta, i) * toggle;             toggle = toggle * -1;         }                // calculate denominator         denominator = 1;         toggle = -1;                for (int i = 2; i <= n; i += 2) {             numerator = numerator + nCr[n,i] * Math.Pow(tanTheta, i) * toggle;             toggle = toggle * -1;         }                ans = numerator / denominator;                return ans;     }       // Driver code    public static void Main()    {        binomial();         double tanTheta = 0.3;         int n = 10;         Console.Write(findTanNTheta(tanTheta, n));    }  }

## PHP

 
Output:
-2.15283

Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for foundation plus STL.

My Personal Notes arrow_drop_up