给定两个整数N和X。任务是找到不超过N个项的tan(x)级数之和。
该系列 :
x + x3/3 + 2x5/15 + 17x7/315 + 62x9/2835……..
例子:
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
方法 :
tan(x)的展开如下所示。使用一个简单的循环计算每个术语并获得所需的答案。
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
输出:
1.551373344